Delphi: Fehler abfangen mit Try Except funktioniert nicht
Frage von Compi | 11.08.2012 um 10:19
Ich möchte in meiner Delphi Anwendung einige mögliche Fehler abfangen, um diese in einem Memo zu speichern um sie hinterher auswerten zu können. Dem Nutzer des Programms soll keine Fehlermeldung angezeigt werden.
Im Internet habe ich gelesen, dass man dies mit Try und Except hinbekommen kann. Ein Try-Except-Block soll verhindern, dass eine Exception-Fehlermeldung angezeigt wird. Allerdings scheint das bei mir nicht zu funktionieren.
Mein Code um das ganze zu testen sieht so aus:
try arr[10]:=0; // 10 liegt außerhalb des Arrays except on E:Exception do memo1.lines.add('Fehler'); end;
Ich greife auf einen Array außerhalb des Ranges zu und löse damit eine Fehlermeldung aus. Der Fehler soll in das Memo geschrieben werden, stattdessen bekomme ich immer noch die doofe Windows Meldung "Access Violation" angezeigt. Eigentlich soll genau diese doch verhindert werden?! Was mache ich falsch?!
Ähnliche Themen
Delphi: Globale Behandlung von Fehlermeldungen (Exceptions)
Tutorial | 0 Kommentare
Delphi: Daten-Abgleich zwischen ListBox und Tabelle (D6)
Frage | 3 Antworten
Lazarus: Datei als Byte-Array laden und Byte-Array als Datei speichern
Tutorial | 0 Kommentare
ObjectPascal: Filtern und Sortieren von Feldwerten einer Datenbank
Offene Frage | 4 Antworten
Delphi: Systemweiter HotKey
Tutorial | 3 Kommentare
Delphi: JPEG-Bild in TImage laden funktioniert nicht: Exception EInvalidGraphic: Unknown picture file extension (.jpg)
Frage | 3 Antworten
Delphi/Lazarus: 3 Wege um eine Zahl auf X Nachkommastellen zu runden
Tutorial | 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.
Startest du dein Programm aus Delphi heraus oder startest du die EXE außerhalb der IDE?
Ich vermute, dass du die EXE innerhalb der IDE startest, dort werden die Exceptions je nach Einstellungen auch dann angezeigt, wenn Sie außerhalb der IDE unterdrückt werden.
Starte mal die EXE außerhalb von Delphi und teste, ob es so funktioniert.
Nachdem in der Delphi IDE eine Exception aufgetreten ist, kannst du auch mit F9 das Programm weiterlaufen lassen. Dann solltest du auch innerhalb der IDE sehen, wie in das Memo geschrieben wird.
In den Optionen von Delphi kannst du die Exceptions auch deaktivieren, davon rate ich aber ab, da es doch recht hilfreich ist, über Fehler informiert zu werden.
12.08.2012 um 11:57
Danke für den Hinweis. Genau das war das Problem! Außerhalb von Delphi funktioniert alles wie es soll! Danke.
12.08.2012 um 14:25