簡體   English   中英

如何外部化錯誤消息

[英]How to externalize error messages

這是外部化錯誤消息的最佳實踐問題。

我正在開發一個項目,我們在代碼,簡短描述和嚴重性方面存在錯誤。 我想知道將這種描述外化的最佳方法是什么。 我想到的是將它們放在不好的代碼中,將它們存儲在數據庫中,將它們放在屬性文件中,或者將靜態類加載到描述中。 我想我會選擇屬性,但也許有更好的方法。

謝謝

使用ResourceBundle存儲這些消息(以及其他用戶界面消息,如按鈕和標簽文本,加速器,快捷方式等)。 這是一個簡短的示例,假設您有一個名為ErrorMessages的包,其中包含名為error.NameOfErrorMessage的錯誤和可變幀中的JFrame。

ResourceBundle errorMsg = ResourceBundle.getBundle("ErrorMessages");
String currError = errorMsg.getString("error.NameOfErrorMessage");
JOptionPane.showMessageDialog(frame, currError);

有關更多信息,您可以在國際化教程中查看關於資源包類

我們面臨着類似的問題。 你是對的,在代碼中包含消息是一個糟糕的選擇。 我們發現有幾個因素會影響哪種方案更好。 在我們的例子中,我們需要在客戶端使用Java處理相同的錯誤代碼,並在服務器端使用SQL和Perl代碼。 我們發現有一個中心定義很有用所以我們使用了數據庫。

如果您只需要在Java中處理錯誤代碼,則屬性文件或資源包可能是最靈活的,因為它們允許本地化和/或國際化。 我會遠離靜態課; 雖然它比在線錯誤描述更好,但它仍然相對不靈活。

我想有很多方法可以正確地做到這一點。 我看到的最常見的方法是使用與實際代碼中的內部錯誤代碼相關的外部文件和類似的描述

error.123="Error with data X"
warning.1="You must use ..."

要更改應用程序上的文本錯誤,您只需要更改此文本文件。 這是國際化的工作方式

error.123="Error con el dato X"
warning.1="Deberías usar ..."

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM