我目前正在得到一個異常拋出,它給出的消息是價值不在預期的範圍內。我試圖糾正一段代碼來抓住這個異常,並壓制它 - 我知道問題是什麼 - 基本上有人試圖用一個不存在的id從列表中拉出一條記錄。捕捉異常
任何想法我怎麼去捕捉這個?
我目前正在得到一個異常拋出,它給出的消息是價值不在預期的範圍內。我試圖糾正一段代碼來抓住這個異常,並壓制它 - 我知道問題是什麼 - 基本上有人試圖用一個不存在的id從列表中拉出一條記錄。捕捉異常
任何想法我怎麼去捕捉這個?
要壓制你需要做這樣的事情
try
{
// Code that may throw an exception.
}
catch (Exception ex) // Better to use a more specific exception class
{
// Do nothing - That suppresses the exception.
// If you want to do additional checking that may continue the exception
// up the stack use "throw" on its own - which compiled to CIL/MSIL's
// "rethrow" and doesn't drop much of the information that would
// go if you did "throw ex"
}
這是一個例外,所有有抑制異常。
爲了保持這些代碼的完整性(或者你在6個月內忘記了爲什麼要這樣做的具體細節),也很好地評論你爲什麼要抑制異常。如果我看到抑制異常的代碼,我總是想知道爲什麼。
使用try
catch
塊爲空catch
?如果你想得到真正的具體信息,你可以使用一個異常過濾器來捕捉這種情況(當然在c#6中)。
https://msdn.microsoft.com/en-us/library/0D565esw.aspx –
你應該使用'try-catch',但是你也需要用代碼來處理錯誤。例如,如果你正在閱讀一個數組,並且你太過分了,通過你的代碼你不應該讓它做,而且當數組沒有更多的元素時你應該停止。 'try-catch'應該用於由用戶產生的異常,而不是由代碼產生。 – Justplayit94
您應該至少在某處記錄異常。例外情況不是爲了好玩。 – Werner