1. ホーム
  2. c#

[解決済み】finallyブロックが例外をスローした場合はどうなりますか?

2022-03-31 23:19:49

質問

最終的にブロックが例外をスローする場合、どのような まさに が起こるのでしょうか?

具体的には、finallyブロックの途中で例外が発生した場合、どうなるのでしょうか。 このブロック内の残りのステートメント(の後)は起動されるのでしょうか?

例外が上に伝播することは承知しています。

解決方法は?

<ブロッククオート

最終的にブロックが例外を投げる場合、どのような まさに が起こるのでしょうか?

その例外は外にも上にも伝播し、より高いレベルで処理される(ことができる)。

最終ブロックは ではなく 例外がスローされた時点より後に完了します。

もし、finallyブロックがそれ以前の例外の処理中に実行された場合、その最初の例外は失われます。

C# 4 言語仕様書 8.9.5: 最終ブロックが別の例外をスローした場合、現在の例外の処理は終了します。