ich eine große Familie von Ausnahmen hat:Eine große Familie der Ausnahme. Eine Art und Weise zu organisieren, es
class A extends Exception {}
class A1 extends A {}
class A2 extends A {}
...
class A40 extends A {}
Keine Ausnahme kann „repariert“ werden, aber jede Ausnahme muss als Fehler Benutzer angezeigt werden. Jede Ausnahme (ihr Typ) trägt eine andere Information, so dass ich die Anzahl der Ausnahmen nicht "reduzieren" kann. Da der Benutzer benachrichtigt werden muss, wird jede ausgelöste Ausnahme an die GUI "gezogen".
Es ist problematisch? Warum? Zum Beispiel:
private void f() throws A1, A2, ..., A20 {}
A einige Lösung (*) könnte sein:
private void f() throws A {}
Und, um Ausnahmetyp "erholen":
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){
....
}
....
}
}
- Was denken Sie über (*)?
- Der cannonical Weg, es zu tun ist ...
Gibt es etwas über diese Ausnahmen? Können sie dieselbe Ausnahmeklasse mit unterschiedlichen Attributen sein? –
* "... eine weitere Information, so dass ich die Anzahl der Ausnahmen nicht reduzieren kann" * - Ich bezweifle ernsthaft die Aussage, dass sie nicht reduziert werden kann. –
Der kanonische Weg ist * nicht * eine große Anzahl von Ausnahmen zu erstellen. Ich habe in 20 Jahren weniger Ausnahmen geschrieben als in diesem Beispiel. – Kayaman