Delphi erzeugt ja gerne mal Exceptions, die so allgemein sind, dass der Benutzer nichts damit anfangen kann. (z.B. "ungültige Variantumwandlung")
Hier muss man als Programmierer mitdenken und an
strategisch günstigen Stellen die
Exception abfangen, erweitern und neu auslösen:
Delphi-Quellcode:
procedure TForm1.ButtonImport(Sender:TObject);
begin
if FileDialog1.Execute
then
begin
try
ImportXMLfile(FileDialog1.Filename);
except
on E:
Exception do
begin
// sinn- und gehaltvolle Fehlermeldung bilden
E.
Message := '
XML - Import'#13#10+
'
Fehler beim Importieren der Datei <'+FileDialog1.Filename+'
>'#13#10+
E.
Message;
// auf jeden Fall die orginale Meldung anhängen !!
Raise;
// Exception erneut auslösen
end;
end;
end;
end;
Man hütte sich davor, anstelle von Raise etwa ShowMessage zu verwenden.
Mit dieser Technik kann man Programme schreiben, die jederzeit präzise Fehlermeldungen ausgeben,
mit denen sowohl der Benutzer, als auch der Programmierer etwas anfangen kann.
Sinnvoll lässt sich diese Technik auch innerhalb von Schleifen einsetzen:
Delphi-Quellcode:
for i := 0
to stringlist.Count-1
do
begin
try
ImportCSVdaten(stringlist[i]);
except
on E:
Exception do
begin
E.
Message := Format('
Fehler in Zeile %d'#13#10, [i])+
E.
Message;
raise;
end;
end;
end;