我想獲得處理異常的理想方法。我搜索了&,我應該把try
catch
放在catch
塊中,以便處理,但是如果在嵌套塊本身發生了什麼異常。如何處理catch塊中的異常?
try
{
int a = 10;
int b = 0;
int c = a/b;
Console.WriteLine(c);
Console.ReadKey();
}
catch (Exception ex)
{
int a = 10; int b = 0;
int c = a/b;
Console.WriteLine(ex.Message.ToString());
Console.ReadKey();
}
finally
{
Console.WriteLine("Some Exception");
}
在google搜索,我讀了它應該如下佈置:
- If exception occurs in Catch block itself then how to handle it in C#?
- If exception occurs in Catch block itself then how to handle it in C#?
-
try { int a = 10; int b = 0; int c = a/b; Console.WriteLine(c); Console.ReadKey(); } catch (Exception ex) { try { } catch(Exception innerEx) { // What if exception here also occurs. } } finally { Console.WriteLine("Some Exception"); }
如果我這樣做,那麼它會卡在一個無限的
try-catch
塊。
我認爲會有一些更好或正確的方式來處理這種情況。
在某些情況下,如果您的代碼處於您的異常處理中發生異常的狀態,您應該會發生崩潰。如果應用程序崩潰並不好,您需要考慮您的代碼如何「紓困」,或中止造成問題的流程。 –
我會與上面的評論。從我的視角來看,這是一個設計問題,而不是語言問題。我也可以用'if'語句構建上面的例子 - >如果出錯了,我執行失敗處理 - >如果失敗處理出錯,我執行失敗處理,如果.... – Moerwald
重要的是你學會了很很快發現異常處理是**糟糕的** _unless_您有一個特定的異常,您可以捕捉並且可以正確處理。如果你曾經寫過'catch(Exception ...)',那麼你可能會讓你的生活變得更加艱難 - 不容易。 – Enigmativity