すべてのブロックを「try」-「catch」で囲まないのはなぜですか? 質問する

すべてのブロックを「try」-「catch」で囲まないのはなぜですか? 質問する

メソッドが例外をスローする可能性がある場合には、意味のある try ブロックでこの呼び出しを保護しないのは無謀であると私は常に信じてきました。

私は「スローする可能性のある呼び出しは常にtry、catchブロックでラップする必要があります。」という投稿をしました。この質問そしてそれは「非常に悪いアドバイス」だと言われました。その理由を理解したいと思います。

ベストアンサー1

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

それ以外の場合は、呼び出しスタックの上位のメソッドがそれを理解できることを期待して、それを上位に渡します。

他の人が指摘しているように、致命的なエラーが確実にログに記録されるように、コール スタックの最上位レベルに未処理の例外ハンドラー (ログ記録付き) を配置することをお勧めします。

おすすめ記事