Hallo!
Wenn ich mal etwas genauer über das Schlüsselwort finally nachdenke, dann erscheint es mir zunehmend überflüssig. Per Definition führt es nach einem try/catch den umschlossenen Code auf jeden fall (also unabhängig von einer eventuellen Exception aus.
Aber wenn ich eine Exception ordentlich abfange, wird der code nach dem try/catch - auch wenn er nicht in finally eingeschlossen ist - ebenso garantiert ausgeführt. Diese Beispiele sollten also äquivalent sein:
try
{
throw new Exception("test");
}
catch(Exception e)
{
// abgefangen
}
finally
{
syso("ausgeführt");
}
und
try
{
throw new Exception("test");
}
catch(Exception e)
{
// abgefangen
}
syso("ausgeführt");
Wozu also finally?