Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Wie mit dem Fehler in einer Klasse umgehen?

  Alt 13. Apr 2015, 17:05
Wenn ich Klassen erstelle, dann wird im constructor als Erstes die Gültigkeit der Argumente geprüft.
Delphi-Quellcode:
constructor TFoo.Create( ABar : TBar );
begin
  // Guard-Section
  if not Assigned( Bar ) then
    raise EArgumentNilException.Create( 'ABar' );

  inherited Create;

  FBar := ABar;
  FSomething := TSomething.Create;
end;

destructor TFoo.Destroy;
begin
  FSomething.Free;
  inherited;
end;
Wird jetzt eine Instanz erzeugt, dann ja nach diesem Pattern:
Delphi-Quellcode:
LFoo := TFoo.Create( nil ); // Bei einer Exception ist hier schon Ende
try
  // mit LFoo arbeiten
finally
  LFoo.Free;
end;
In einer Schleife
Delphi-Quellcode:
LList := TObjectList.Create;
try
  while LList.Count < 1000 do
  begin
    LList.Add( TFoo.Create( nil ) ); // Bei einer Exception ist hier schon Ende
  end;

  // mit LList arbeiten

finally
  LList.Free; // aber das hier wird auch noch abgearbeitet
end;
Also immer alles sauber

@bernau

Mit diesem Konzept wünsche ich viel Glück bei der Fehlersuche ... denn das wirst du brauchen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat