多くの開発者がユーティリティクラスを使用してすべての種類のチェックを実行していることに気付きました。つまり、SomeDefenseClass.checkState(arg > 4)
などです。それは引数、アプリケーションの状態、nullポインタなどをチェックするためのかなりいい、きれいな方法であると思われます。utilそれは状態のチェックのためだけにIllegalStateExceptionをスローするのも大丈夫です。ヌルポインタのNPEなど。しかし今私は問題に直面しています。違う種類の違法な州のために、多くの異なる例外を投げなければなりません。 ItemNotFoundException、その上UserNotAuthorizedExceptionと... 例外処理の問題
1)最も簡単な方法は十分であるように思わない:すべてのユーティリティクラスを使用すると、ちょうど場合は書きませんブロック。 )
3(我々はおよそ30種類の例外を持っているとカウント原因、あまりよくない)可能なすべての例外の異なるstateCheck方法を記述するには(ジャスト
if (!foo) {
throw new SomeException(arg1);
}
if (!bar) {
throw new SomeOtherException(arg1, arg2);
}
// and so on
非常に多くを持って好きではありません)防衛クラスに1つのメソッド書き込むには:このケースではとにかく
public static void checkState(boolean condition, Throwable t) {
if (!condition) {
throw t;
}
}
を私は新しい例外オブジェクトに状態チェックが実行されるたびに作成する必要があり、それは全く不要なオブジェクトの数千人が作成されることを意味し、の終わりにそれは問題になるかもしれない日:
だから誰もその問題の良い解決策をお勧めしますか?
あなたは