1. ホーム
  2. java

[解決済み] なぜfinallyブロックを使用するのか?重複

2023-01-02 07:05:39

疑問点

私が知る限り、以下のコードスニペットはどちらも同じ目的を果たすでしょう。なぜ finally ブロックがあるのでしょうか?

コードAです。

try { /* Some code */ }
catch { /* Exception handling code */ }
finally { /* Cleanup code */ }

コードBです。

try { /* Some code */ }
catch { /* Exception handling code */ }
// Cleanup code

どのように解決するのですか?

  • 処理していない例外が投げられたらどうする? (キャッチしていないことを祈ります。 Throwable ...)
  • tryブロックの中から戻るとどうなるのでしょうか?
  • catchブロックが例外を投げるとどうなりますか?

A finally ブロックは しかし そのブロックを終了すると(明示的にプロセス全体を中断するいくつかの方法を除いて)、それが実行されることを確認します。これは、リソースの決定論的なクリーンアップのために重要です。