1. ホーム
  2. exception

[解決済み] なぜすべてのブロックを "try"-"catch "で包んではいけないのですか?

2022-03-22 10:32:05

質問

あるメソッドが例外を投げる可能性がある場合、意味のあるトライブロックでこの呼び出しを保護しないのは無謀である、というのが私の考えです。

先ほど投稿した ' 投げる可能性のある呼び出しは、必ず try, catch ブロックで囲むべきです。 ' から この質問 と言われ、「著しく悪いアドバイス」だと言われたのですが、その理由が知りたいです。

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

メソッドは、何らかの賢明な方法で例外を処理できる場合にのみ、例外をキャッチする必要があります。

そうでない場合は、コールスタックの上位にあるメソッドがそれを理解できることを期待して、それを上に渡します。

他の人も指摘しているように、致命的なエラーはすべてログに記録されるように、コールスタックの最上位に未処理の例外ハンドラ(ロギング付き)を持つのが良い習慣です。