Tja, könnte man bei Funktionen/Methoden angeben, dass sie immer eine Excepion werfen, dann könnte der Compiler das wissen, aber das geht nicht, also weiß er es nicht, dass es danach nicht weitergeht.
Statt dem Result zuzuweisen würde ich hier einfach raise nutzen.
Beides wird nicht ausgeführt, aber beim Raise ist das Verhalten "klarer" und man ist unabhängig davon ob die Funktion ein Result hat oder nicht und welchen Typ die hat.
Delphi-Quellcode:
try
// do something and set result
// ...
Result := 0;
except
Exception.RaiseOuterException(...);
raise;
// damit der Compiler nicht motzt
end;
Ich find's eh bissl komisch, dass die OuterException so unpraktisch verpackt wurde.