簡體   English   中英

最佳實踐錯誤處理

[英]Best practice Error handling

我想知道用C ++,Java,C#等編程語言處理應用程序錯誤的最佳方法是什么。

我想到了創建一個地方來存儲與錯誤和警告消息有關的數字。

例如 :

10000->“無法讀取文件”。 ... 20000->“緩沖區溢出”。 ... 80000->“關鍵內容”。

我認為用數字來映射錯誤是一個好習慣。 無論使用哪種語言顯示,都更容易發現錯誤。 你們對此怎么看? 有沒有更好的方法可以做到這一點?

另一點是,如何存儲它們,如何創建它們?

大枚舉枚舉是一個好的解決方案嗎? 我們是否必須將它們存儲在數據庫中? 在文件中?

它應該是 :

  • 容易在代碼中找到錯誤(即從號碼中發現)。
  • 輕松添加新錯誤(如果不在同一位置,則兩次不使用相同的錯誤號可能會很棘手)。

你們對這一切怎么看?

在此先感謝您的幫助和建議!

使用錯誤代碼識別異常不是一個壞習慣。

在生產環境中使日志文件更短非常有用,也可以用於國際化錯誤消息。

另一方面,在開發時,接收到錯誤代碼而不是帶有有意義描述的完整錯誤消息可能會很煩人。 開發人員必須去檢查錯誤代碼是關於什么的。

在我的一個項目(使用Java)中,我開發了一種混合方法。 我的根異常有一個使用Enum類的構造函數。 Enum類包含錯誤代碼列表和默認錯誤消息。 就像是:

public enum ErrorCodes {

    VALIDATION_ERROR(5001, "One of the objects cannot be validated"),
    RESOURCE_NOT_FOUND(4004, "The requested resource does not exist"),

根異常還具有其他構造函數,因此開發人員可以覆蓋默認消息:

public CoreException(ErrorCodes _errorCode, final String message, final Throwable cause) {
   super(message, cause);
   errorCode = _errorCode.getCode();
}


public CoreException(ErrorCodes _errorCode, final String message) {
   super(message);
   errorCode = _errorCode.getCode();
}

捕獲到異常后,異常處理程序可以決定(基於某些配置設置)記錄錯誤和消息或僅記錄錯誤。 更復雜的錯誤處理程序還可以基於錯誤代碼從資源包中以特定語言查找消息。

不要做。

我們擁有比C和FORTRAN更好的工具。

拋出異常並給出名稱。 C#和Java將提供調用堆棧。

C ++可以告訴您異常的類型(幾乎沒有)

暫無
暫無

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

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