1
我在try/catch中使用System.Diagnostics.Trace#TraceError來跟蹤錯誤。通過查看TraceError的實現,看起來來自聽衆的錯誤沒有被真正捕獲。這是否意味着我應該寫這樣的代碼下面,以避免登錄傳播到主叫方的錯誤:我是否需要在try/catch中包裝Trace.TraceError?
catch (Exception e) {
try {
Trace.TraceError(e);
} catch {
// Do nothing
}
}
'你不應該捕捉異常,做nothing' - 我不同意高。如果冒出異常沒有價值,爲什麼要泡它?如果您的日誌子系統由於某種原因失敗,您是否應該崩潰整個應用程序?你應該提醒用戶嗎?最有可能不是!在這種情況下抑制異常,並讓應用程序繼續執行其工作。 –
@PhilipPittle來吧。一般建議要注意。這就是我將相關問題聯繫起來的原因。正如你所說,規則可以根據場景進行更改:) btw爲什麼抑制錯誤?我寧願修復它在代碼中,如果它可以做到。 –
永遠不要說永遠:)。我同意最佳做法是對這個例外做些事情。但這並不是每個案件都需要的。 –