Javaで検査例外だけをcatchするには?

Javaで検査例外だけをcatchするには?
カテゴリ
技術
タグ
Exception
Java

乱暴に「catch (Exception e)」で全ての例外を捕捉して処理しようとしたらfindbugsさんに怒られました。参考
これは、意図せずに実行時例外(非検査例外)を捕捉してしまうと、潜在的なバグがあった時にそれが隠れてしまうことが懸念されるからです。実行時例外も検査例外と同様に扱いたいというケースはないこともないでしょうが、危険性のほうが大きいと思われます。

実装方法

下記コードのように、RuntimeExceptionとExceptionの複数のcatch句を書き、RuntimeExceptionでは例外を再throwします(必要に応じてログ出力など任意の処理も行います)。

実行時例外はRuntimeExceptionとして簡単に区別できますが、検査例外という親クラスがないので、このような書き方をする必要があります。

参考

https://spotbugs.readthedocs.io/ja/latest/bugDescriptions.html#rec-rec-catch-exception


関連記事

  1. Spring Bootの2.7系から3.1系へのバージョンアップ対応のハマりどころ

    Spring Bootのバージョンアップに際して、一部ソースコード修正などの対応が必要になる部分が少なからずあります。私がハマったところベースでいくつか対応方法を説明していきたいと思います。 サポート期間が、2.7.xと […]

  2. 【オンライン】 JJUG CCC 2022 Spring 発表資料・動画まとめ

    2022-6-19(日)に行われた JJUG CCC 2022 Spring でのセッション発表資料・動画で公開されているもののリンクをまとめています。 情報取得元:twitterのハッシュタグ(#jjug_ccc)検索 […]

  3. 【オンライン】 JJUGナイトセミナー「開発環境の最前線」

    JJUGナイトセミナー「開発環境の最前線」の簡単なまとめです。 VSCode で Java アプリの開発ができるってご存じですか? VSCode はエディタですが、VSCode に Java 開発用のプラグインをインスト […]

  4. 【オンライン】 JJUG CCC 2021 Fall 発表資料・動画まとめ

    2021-11-21(日)09:30 – 19:00 に行われた JJUG CCC 2021 Fall でのセッション発表資料・動画で公開されているもののリンクをまとめています。 情報取得元:twi […]

  5. 【オンライン】 JJUG CCC 2020 Fall 発表資料・動画まとめ

    2020-11-07(土)09:30 – 19:00 に行われる JJUG CCC 2020 Fall でのセッション発表資料で公開されているものをまとめています。 情報取得元:twitterのハッ […]

  6. 【オンライン】 JJUG CCC 2021 Spring 発表資料・動画まとめ

    2021-05-23(日)09:30 – 19:00 に行われた JJUG CCC 2021 Spring でのセッション発表資料で公開されているものをまとめています。 情報取得元:twitterのハッシュタ […]