6

クラスの不変条件が無効になった場合に備えて、実行時例外をスローしたいと考えています。これはプログラミング エラー (NullPointerException と同様) であるため、クライアントはその例外をキャッチすべきではありません。

例外クラスをプライベートまたはパブリック (またはその他) と宣言する必要がありますか?

class Foo
{
    // ...

    private static class InvariantsViolated
    {
        // ...
    }
}

カスタムのランタイム例外と可視性に関するガイドラインはありますか?

4

2 に答える 2

1

私は、throw何かをするためには、そのオブジェクトがインターフェースを実装する必要があると信じています。つまり、それはまたはのいずれかThrowableでなければなりません。クライアントにそのイベントをキャッチさせたくないので、おそらくを使用する必要がありますドキュメントから:ErrorExceptionErrorError

エラーはThrowableのサブクラスであり、妥当なアプリケーションがキャッチしようとしてはならない重大な問題を示します。

そうすれば、恐ろしいキャッチオールを回避することができExceptionます-一部のプログラマーが使用する傾向があります-ほとんどの場合、これらのプログラマーはキャッチすることさえまったく考えていませんError...

于 2011-03-14T08:30:58.453 に答える