Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Exception-Meldung auswerten und speichen
phoque - Mi 14.12.05 11:31
Titel: Exception-Meldung auswerten und speichen
Der Delphi Debugger gibt ja bei Exceptions eine Fehlermeldung aus z.B.
Zitat: |
Cannot open File "D:\Data\...". Das System kann die angegebene Datei nicht finden. |
Ist es jetzt irgendwie moeglich diese auszulesen um Sie in einer Datei abspeichern zu koennen? Ich wollte die dann anschliessend analysieren koennen. An den Namen der Exceptions komme ich wohl "EFopenError". Aber wie komme ich an die komplette Meldung?
Moderiert von
Tino: Titel geändert.
chrisw - Mi 14.12.05 11:47
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| try OpenFile(..); except on EFopenError do on E: Exception do end; |
phoque - Mi 14.12.05 12:05
soweit klappt das schon ganz gut.
Kann ich das jetzt auch fuer die alle anderen Exceptions machen die im else teil aufgefangen werden?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| on E: EFOpenError do begin WriteLog(E.Message, Datum); end; else begin WriteLog( ... , Datum); end; |
Moderiert von
raziel: Quote- durch Delphi-Tags ersetzt
chrisw - Mi 14.12.05 12:10
Aus der Online Hilfe(OH)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| try ... except on EZeroDivide do HandleZeroDivide; on EOverflow do HandleOverflow; on EMathError do HandleMathError; end; |
phoque - Mi 14.12.05 12:26
Hmm, das verstehe ich nicht. Damit werden doch nur die speziellen Exceptions behandelt.
Ich suche eine Moeglichkeit, die Fehlermeldung auszulesen die eine beliebige Exception liefert.
Ich weiss ja vorher nicht unbedingt welche Exception kommt.
Also etwas in dieser Art:
Delphi-Quelltext
1: 2:
| on E: EFopenError do WriteLog(E.Message) on E: AllOtherErrors do WriteLog(E.Message) |
Moderiert von
raziel: Quote- durch Delphi-Tags ersetzt
Lossy eX - Mi 14.12.05 12:32
Das hatte Chrisw als erstes bereits mit genannt. Exception ist die Klasse von der ALLE Exceptions abgelitten werden.
Also genügt folgendes.
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| try ... except on E: Exception do WriteLog(E.Message); end; |
phoque - Mi 14.12.05 12:49
joa, da hatte ich nur die spezielle Exception eingesetzt.
Jetzt klappt es :D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!