1. ホーム
  2. Java

Java(III)クラス。8. 例外のfinallyブロックの問題(finallyブロックが正常に完了しない)

2022-03-23 09:44:35
<パス

終了ブロックに return 文が含まれる場合、以下の理由により、Eclipse は "finally block does not complete normal" という警告を出します。

1. tryブロックやcatchブロックにreturn文があってもfinallyブロックは実行される。



2、finallyブロックのreturn文は、前のreturn文(tryブロック、catchブロックのreturn文)を上書きするので、finallyブロックにreturn文があると、Eclipseコンパイラは警告を報告します "最終ブロックは正常に完了しません".

3. finally ブロックに return 文が含まれる場合、直前の catch ブロックで例外が再スローされても、メソッドを呼び出すステートメントは catch ブロックで再スローされた例外を取得せずに finally ブロックの戻り値を取得し、例外をキャッチしないようにすることができます。

結論として、finallyブロックにreturn文を入れるのは避けた方がよいでしょう。もし、前のステートメントに return 文を入れたり、例外を再スローした後に finally ブロックに return 文を入れると、finally ブロックの意味を理解していないことになり、混乱します。