Einzelnen Beitrag anzeigen

Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

Re: Rückgabewert von Funktionen / evtl. Problem mit try..fin

  Alt 2. Dez 2004, 15:36
Zitat von MaBuSE:
Ich würde es so machen:
Delphi-Quellcode:
function meineFkt(str: String): TMeinTyp;
begin
  Result := TMeinTyp.Create;
  Result.Property1 := 'Hallo 1';
  Result.Property2 := 'Hallo 2';
end;
bzw etwas sicherer:

Delphi-Quellcode:
function meineFkt(str: String): TMeinTyp;
begin
  Result := TMeinTyp.Create;
  try
    Result.Property1 := 'Hallo 1';
    Result.Property2 := 'Hallo 2';
  except
    FreeAndNil(Result);
  end;
end;
Rückgabe = TMeinTyp
Rückgabe bei Fehler = nil

[edit]
Anwendung:
Delphi-Quellcode:
  ...
  x.Free; // nur um zu zeigen das x nicht definiert sein sollte/muss
  x := meineFunktion('');
  if x <> nil then
  try
    // mach was
  finally
    x.Free;
  end
  else Fehlermeldung.Ausgeben('...');
  ...
[/edit]
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat