それを整理する方法は、私は例外の巨大な家族のいる:巨大な例外群です。
class A extends Exception {}
class A1 extends A {}
class A2 extends A {}
...
class A40 extends A {}
も例外では「修理」することができますが、すべての例外は、ユーザーにエラーとして表示されなければなりません。すべての例外(型)は別の情報を持ちますので、例外の数を減らすことはできません。ユーザーに通知する必要があるため、スローされた例外はすべてGUIに「プル」されます。
問題がありますか?どうして?たとえば、次のように
private void f() throws A1, A2, ..., A20 {}
Aいくつかのソリューション(*)は次のようになります。あなたはどう思います
void function_in_GUI(){
try {
} catch(A a){
handle(a);
}
void handle(A a){
try{
throw a;
} catch(A1 a){
notify_user();
} catch(A2 a){
....
}
....
}
}
- :
private void f() throws A {}
そして、例外の種類を "回復" します(*)?
- それを行うにはcannonical方法...のRuntimeExceptionを拡張
これらの例外に共通するものは何ですか?異なる属性を持つ同じExceptionクラスにすることはできますか? –
* "...別の情報なので、例外数を減らすことはできません" * - 私は真剣にそれを減らすことはできないと疑っています。 –
標準的な方法は、膨大な量の例外を作成することではありません。この1つの例よりも20年で例外は少ないと書いています。 – Kayaman