2013-01-17 73 views
4

可能重複:
Ignore Exception in C#C#的最佳辦法忽略例外

有時在罕見的情況下,你真的想忽略例外。做這個的最好方式是什麼?我的方法是趕上例外,但不做任何事情。其他?

     try 
         { 
          blah 
         } 
         catch (Exception e) 
         { 
          <nothing here> 
         } 
+3

希望,你只是想忽略一個或幾個特定的​​例外。忽略所有異常並不是一個好主意。 –

+0

不例外。只是您想要忽略的特定例外的類型 –

+1

我同意@BrianRasmussen。當你忽略例外情況時,請添加註釋,解釋爲什麼你忽略它。 –

回答

13

如果你要正好趕上,不處理異常,而忽視它,你可以簡化你有什麼咯。上述

try 
{ 
    // code 
} 
catch 
{ } 

爲任何異常,如果你只是想忽略特定例外,但讓別人泡出來的,你可以,如果你忽略了這樣的例外做到這一點

try 
{ 
    // code 
} 
catch (SpecificException) 
{ } 

,它是最好在catch塊中包含一些評論,說明爲什麼你忽略了這種異常。

+0

作爲一個經驗豐富的開發人員,我發現這是在尋求麻煩。最終可能會出現一些不會一直髮生的異常,因爲沿線的某處不可重現,IGNORED是個例外。我想如果你不打算專門處理一個例外,那麼你不應該接受它。調用方法可以捕獲異常並決定要做什麼。異常會傳遞到堆棧中。您可以重新拋出異常並添加一些註釋,如「無法通過網絡發送,+」ex.message ..以及調用函數可以捕獲這個問題 –

+0

有幾種情況,您會吃(忽略)例外。例如,你不希望你的日誌框架拋出異常,阻止你的業務功能正常工作。基本上,你不希望你的主要任務失敗,只是因爲在可選的非必要代碼中可能存在問題。 – NoOneSpecial

3
try 
{ 
    DoBlah(); 
} 
catch { } 
+2

我將添加 - 在空的catch塊中添加註釋以解釋*爲什麼*您忽略了異常。 –

+0

MS不鼓勵MS最佳實踐。 –

+1

@Zarathos - 問題不在於'最佳實踐',而是關於吞嚥異常。 – Lee

3

這可能是這樣的

try 
{ 
    //blah 
} 
catch{} 

如果你想忽略一個特定的異常

try 
{ 
    //blah 
}catch(YourException){} 
+1

這不會忽略異常。它會忽略所有的例外。 –