注:本記事の内容はJavaで公式にドキュメントされているものではなく筆者の見解です。とはいえクラスを設計する上で有用な指針たり得ると思われるので公開したものです。 おさらい - 検査例外と非検査例外 Javaの例外クラスには「catchしないとコンパイルエラーになる」検査例外(チェック例外、checked exception)とそうでない非検査例外(非チェック例外、unchecked exception)があります。 検査例外は最近は嫌われる傾向がありC#では採用されていませんしAltJava言語も軒並み不採用、さらにはJavaの新しめのライブラリにも非検査例外しか投げないものが出てきていますが、適切に使えば安全なプログラミングのための強力な武器であり、検査例外の有意義さについては @irxground さんの Javaの検査例外の存在意義 をご覧ください。 例外クラスを自作する場合、検査
![Javaの検査例外は、呼び出し側で「どんなに注意しても防げない」異常系 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/1ebb37fe78b74d033a61868e106b50d21950d057/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9SmF2YSVFMyU4MSVBRSVFNiVBNCU5QyVFNiU5RiVCQiVFNCVCRSU4QiVFNSVBNCU5NiVFMyU4MSVBRiVFMyU4MCU4MSVFNSU5MSVCQyVFMyU4MSVCMyVFNSU4NyVCQSVFMyU4MSU5NyVFNSU4MSVCNCVFMyU4MSVBNyVFMyU4MCU4QyVFMyU4MSVBOSVFMyU4MiU5MyVFMyU4MSVBQSVFMyU4MSVBQiVFNiVCMyVBOCVFNiU4NCU4RiVFMyU4MSU5NyVFMyU4MSVBNiVFMyU4MiU4MiVFOSU5OCVCMiVFMyU4MSU5MiVFMyU4MSVBQSVFMyU4MSU4NCVFMyU4MCU4RCVFNyU5NSVCMCVFNSVCOCVCOCVFNyVCMyVCQiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9YTUwMTdkZmI4ODI3MWZlMDJkMDIzM2FiNzk4MzhiYjk%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQweXViYSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZWY5MmZhZmU4NmMwZjQwODc0Yzc2MzE2YTEwY2FiMTE%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dd36edaac462474deb94e4f9a8bab0eca)