2016-09-07 264 views
0

我目前正在得到一個異常拋出,它給出的消息是價值不在預期的範圍內。我試圖糾正一段代碼來抓住這個異常,並壓制它 - 我知道問題是什麼 - 基本上有人試圖用一個不存在的id從列表中拉出一條記錄。捕捉異常

任何想法我怎麼去捕捉這個?

+0

https://msdn.microsoft.com/en-us/library/0D565esw.aspx –

+0

你應該使用'try-catch',但是你也需要用代碼來處理錯誤。例如,如果你正在閱讀一個數組,並且你太過分了,通過你的代碼你不應該讓它做,而且當數組沒有更多的元素時你應該停止。 'try-catch'應該用於由用戶產生的異常,而不是由代碼產生。 – Justplayit94

+0

您應該至少在某處記錄異常。例外情況不是爲了好玩。 – Werner

回答

2

要壓制你需要做這樣的事情

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個月內忘記了爲什麼要這樣做的具體細節),也很好地評論你爲什麼要抑制異常。如果我看到抑制異常的代碼,我總是想知道爲什麼。

0

使用trycatch塊爲空catch?如果你想得到真正的具體信息,你可以使用一個異常過濾器來捕捉這種情況(當然在c#6中)。