finally ブロックが例外をスローするとどうなりますか? 質問する

finally ブロックが例外をスローするとどうなりますか? 質問する

finally ブロックが例外をスローした場合、具体的に何が起こるのでしょうか?

具体的には、finally ブロックの途中で例外がスローされた場合、何が起こりますか。このブロック内の残りのステートメント (後続) は呼び出されますか?

例外は上方に伝播することを認識しています。

ベストアンサー1

finally ブロックが例外をスローした場合、正確には何が起こるのでしょうか?

その例外は上方に伝播し、より高いレベルで処理されます (処理できます)。

例外がスローされたポイントを超えると、finally ブロックは完了しません。

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

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

おすすめ記事