catch ブロックと finally ブロックの両方が例外をスローするとどうなりますか?
12323 次
5 に答える
32
ブロックが例外をスローすると、ブロックfinally
からスローされた例外が効果的に非表示にcatch
なり、最終的にスローされる例外になります。したがって、キャッチされたときに例外をログに記録するか、finally ブロック自体が例外をスローしないようにすることが重要です。
于 2009-09-26T23:32:50.167 に答える
6
catch が例外をスローすると、finally ブロックが実行され、例外で終了します。finally ブロックが例外をスローした場合、ブロックは例外で終了します。
于 2009-09-26T23:26:29.430 に答える
4
最後にスローされた例外がスローされます。
于 2009-09-26T23:25:45.050 に答える
4
Adrianbanks によって既に十分に回答されていますが、次の投稿は興味深いものになるはずです: 興味深い例外結果: 例外をスローして、Finally ブロックから
于 2009-09-26T23:34:29.400 に答える
-4
HI Nwaman あなたの答えは間違っていると思います。Windows アプリケーションでテストしました。
try
{
string s = "hu";
int i = int.Parse(s);
}
catch (Exception ex)
{
string s = "hu";
int i = int.Parse(s);
throw new Exception();
}
finally
{
MessageBox.Show("hi");
}
そして、これは最終的に実行されることはありません。
于 2012-10-22T09:36:50.583 に答える