チェック済みの例外は処理または指定する必要があることは承知していますが、チェックなしの例外はオプションです。
なんらかの理由で、チェックされていない例外がメソッドで発生すると合理的に期待できる場合、それをスロー仕様に追加する必要がありますか?または、仕様をできるだけ短くする必要がありますか?
なんらかの理由で、チェックされていない例外がメソッドで発生すると合理的に期待できる場合、それをスロー仕様に追加する必要がありますか?
未チェックの例外はプログラミングエラーを示すため、throws
句での宣言は避けてください。一般に、プログラムの最高レベルを除いて、これらの例外のキャッチは試みるべきではありません。このルールにはいくつかの例外があります(しゃれが意図されています)。たとえば、プロダクションコードではNumberFormatException
をキャッチする必要があります。
注:フレームワークの作成者は、基本例外をRuntimeException
に継承させることがあります(例 HibernateException
=)。そのような例外もキャッチする必要があります。
それは設計上の決定です。通常はそうはしません。ただし、コードのユーザーがException
をキャッチすることが重要であると考える場合、それは彼にそれを行うことを示唆する方法です。別の方法は、それをドキュメントに追加し、Exception
をキャッチすることが重要である理由を説明することです。
throws-clauseで明示的に宣言する必要はありませんが、これはランタイム例外に関するものですが、この例外をjavadocに文書化して、ユーザーがこの例外が発生する状況とその意味を確認できるようにする必要があります。