Du hast da ein
try..finally
. Wenn da eine
Exception kommt, dann ist der Rückgabewert deine geringste Sorge denn deine Funktion kehrt nicht zurück. Sie behandelt die
Exception nicht, also bubbelt die eins weiter nach oben durch.
Delphi-Quellcode:
uses System.SysUtils;
procedure p();
begin
raise EProgrammerNotFound.Create('nope');
end;
function f(): Integer;
begin
Result := 0; //H2077 Auf 'f' zugewiesener Wert wird niemals benutzt
try
p();
Result := 42;
finally
// nothing
end;
end;
var
someValue: Integer;
begin
try
someValue := f();
WriteLn('Der Wert ist ', someValue);
except
WriteLn('Wir haben keinen Wert');
end;
WriteLn(sLineBreak, 'Ende.'); Readln;
end.