Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Warum könnte hier der Rückgabewert undefiniert sein?

  Alt 29. Okt 2014, 15:47
Delphi-Quellcode:
function someFunc(): Boolean;
begin
   try
      try
         Result := True; // 1
      except
         on EProgrammerNotFound do Result := False;
      else
         raise; // 2
      end;
   finally
      // 3
   end;
   // 3
end;
(1) Exception tritt auf, keine EProgrammerNotFound Exception, daher re-raise (2), Exception landet im Finally Block (3) wo nichts passiert. Und immer noch wurde kein Result gesetzt. Ohne try-finally fliegt er beim re-raise ja komplett aus der Funktion. Und das raisen einer Execption die eine Funktion beendet reicht Delphi als "Rückgabewert"
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat