Ich habe gehört, dass das Verschachteln von Try-Catch-Anweisungen oft ein Codegeruch sein kann, daher frage ich mich, ob diese Situation eine Ausnahme darstellt. Wenn nicht, welche guten Möglichkeiten zur Umgestaltung gibt es?
Mein Code sieht folgendermaßen aus:
try{
X x = blah;
otherStuff;
for (int i = 0; i < N; i++){
try{
String y = Integer.toString(i);
f(x);
}
catch(Exceptions1 e1){
System.err.println(... + y + ...);
System.exit(0);
}
}
catch(Exceptions2 e2){
...
}
Ich benutze Exceptions
hier, um einen Mehrfachfang anzuzeigen.
e2
wird verwendet, um Ausnahmen zu fangen, die durch Initialisieren x
und Ausführen ausgelöst werden otherStuff
. Im Idealfall hätte mein Try-Catch nur diese beiden Zeilen umgeben, aber ich verwende sie x
in meiner Schleife und wollte die Warnungen "nicht verwendete Zuweisung" vermeiden, die durch die Initialisierung auf Null außerhalb des Try-Catch verursacht werden.
e1
wurde nicht mehrfach abgefangen, e2
da ich dem Benutzer Informationen über Iterationsdetails bereitstellen möchte und daher einen catch-Block innerhalb der Schleife haben möchte.