Wenn ich mehrere Funktionen in einer Funktion habe, die Ausnahmen auslösen, was ist der beste Weg, sie zu behandeln, wenn sie voneinander abhängen?Ausnahmebehandlungspraktiken von mehreren Ausnahmen werfenden Funktionen
Mit voneinander abhängig meine ich, dass, wenn etwas eine Ausnahme auslöst, der Code nach der Funktion, die die Ausnahme ausgelöst hat, übersprungen werden sollte.
dachte ich drei Auswege, dies zu tun:
Verschachtelung Ausnahme
public void parent() {
someFunction();
}
public void someFunction() {
try {
function1();
try {
function2();
...
} catch (Func2xception e) {
System.out.println("Function 2 failed!");
}
} catch (Func1Exception e) {
System.out.println("Function 1 failed!");
}
}
Return on Ausnahme
public void parent() {
someFunction();
}
public void someFunction() {
try {
function1();
} catch (Func1Exception e) {
System.out.println("Function 1 failed!");
return;
}
try {
function2();
} catch (Func2xception e) {
System.out.println("Function 2 failed!");
return;
}
...
}
Ausnahmen Methode Signatur hinzufügen
public void parent() {
try {
someFunction();
} catch (Func1Exception e) {
System.out.println("Function 1 failed!");
} catch (Func2Exception e) {
System.out.println("Function 2 failed!");
} ...
}
public void someFunction() throws Func1Exception, Func2Exception {
function1();
function2();
...
}
Ich benutze manchmal alle zusammen und das ist ein Durcheinander. Gibt es gute Praktiken, um mit solchen Situationen umzugehen?