Mann kann natürlich auch klein anfangen und mit ein paar Try-excepts seinen Startcode absichern, bzw. mit einer netten "Positionsangabe" die
Exception-Message erweitern.
Entweder den Startcode ins OnCreate, wie es viele machen, aber wenn auf der Form schon Datenkomponenten sind, welche beim Start schon was machen, dann:
constructor Create(AOwner: TComponent); override;
Delphi-Quellcode:
constructor TForm1.Create(AOwner: TComponent);
begin
try
inherited;
except
if not HandleCreateException then
raise;
end;
end;
PS: Ungefähr so ist auch das OnCreate abgesichert (seit, ich weiß nicht wann), so daß selbst bei einer
Exception im OnCreate die Form nicht komplett verreckt.
Wobei es hier dennoch nicht schlecht gewesen wäre, wenn man dem
Handle Exception noch die adresse mitgegeben hätte.
Delphi-Quellcode:
constructor TForm1.Create(AOwner: TComponent);
begin
try
inherited;
except
on E:
Exception do begin
//E.Message := Self.SecureClassName + '(' + Self.SecureName + '): ' + E.Message; // ich hab mir via Class-Helper da bein paar geschützte Property geschaffen, da sie öfters verwendet werden, welche auch mit nil und ungültigen Zeigern zurechtkommen
try
E.
Message := Self.ClassName + '
(' + Self.
Name + '
): ' + E.
Message;
except
E.
Message := '
TForm.Create: ' + E.
Message;
end;
if not HandleCreateException
then
raise;
end;
end;
end;