public Foo doDangerousStuff() throws Exception {
try {
dangerousMethod();
return new Foo();
} catch (Exception e) {
throw e;
} finally {
mustBeCalledAfterDangerousMethod();
}
}
Verhält sich dies anders, als wenn wir die catch-Klausel weglassen würden?
public Foo doDangerousStuff() throws Exception {
try {
dangerousMethod();
return new Foo();
} finally {
mustBeCalledAfterDangerousMethod();
}
}
[Um die Verwirrung zu klären: Ja, die catch
Block tut nichts, außer die Ausnahme erneut auszulösen. Ich habe mich gefragt, ob dies eine Art von unterschiedlicher Reihenfolge verursacht, wenn die finally
Block aufgerufen wird (unter der Annahme, dass die geworfene Ausnahme vom Aufrufer abgefangen wird), aber aus dem, was ich aus den bisherigen Antworten schließe, ist das nicht der Fall.