Delphi: Globale Behandlung von Fehlermeldungen (Exceptions)
Tutorial von Delphianer | 13.08.2012 um 12:33
Exceptions lassen sich in Delphi einfach mit der Hilfe von Try-Except-Blöcken abfangen und behandeln. Passiert in dem folgenden Code ein Fehler zwischen Try und Except, wird der Code hinter dem Except ausgeführt und wir können verhindern, dass der Nutzer eine Fehlermeldung angezeigt bekommt:
try //Code except on E:Exception do begin //wird im Falle eines Fehlers ausgeführt end; end;
Wünscht man sich allerdings eine globale Fehlerbehandlung aller Exceptions, die irgendwo im Programm vorkommen, stößt Try-Except schnell an seine Grenzen. Schließlich wäre es zu umständlich, um jeden Code des Programms ein Try-Except-Block zu schreiben. Aus diesem Grund möchte ich euch in diesem Tutorial zeigen, wie ihr alle Fehler, die im Programm geschehen in einer Prozedur abfangen könnt, um die Fehler dort zu behandeln.
Globale Fehlerbehandlung
Wir nennen unsere Prozedur GlobalExceptionHandler und deklarieren sie wie folgt unter "public":
public procedure GlobalExceptionHandler(Sender: TObject; E: Exception);
Unser Anwendung kennt das Ereignis "OnException", das bei einer Exception ausgelöst wird. Wir möchten, dieses Ereignis mit unserer Prozedur überschreiben und schreiben daher in das OnCreate:
procedure TForm1.FormCreate(Sender: TObject); begin Application.OnException := GlobalExceptionHandler; end;
Schließlich müssen wir unsere Prozedur GlobalExceptionHandler noch definieren:
procedure TForm1.GlobalExceptionHandler(Sender: TObject; E: Exception); begin //das passiert, wenn ein Fehler auftritt end;
Diese Prozedur wird nun aufgerufen, wenn irgendwo in unserem Programm ein Fehler auftritt. Innerhalb der Prozedur können wir noch weitere Informationen über den Fehler sammeln. In E.ClassName steht zum Beispiel die Art der Exception, in E.Message die Fehlermeldung. Damit lässt sich für jede Fehlerart ein anderer Vorgang definieren oder wir können einfach E.ClassName und E.Message in eine Datei schreiben und speichern.
Über den Autor
Der Autor hat keine Kurzbeschreibung seines Profils angegeben.
Profil anzeigen
Ähnliche Themen
Delphi: Fehler abfangen mit Try Except funktioniert nicht
Frage | 2 Antworten
Delphi: JPEG-Bild in TImage laden funktioniert nicht: Exception EInvalidGraphic: Unknown picture file extension (.jpg)
Frage | 1 Antwort
Delphi: Programm mit ESC Taste beenden
Tipp | 0 Kommentare
Delphi: Globale Variablen definieren
Tipp | 0 Kommentare
Delphi: Dateien verstecken
Frage | 2 Antworten
Delphi: Passwort Edit
Tipp | 0 Kommentare
Delphi: Andere Fenster neben dem Hauptfenster in der Taskleiste anzeigen
Tipp | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.