Entwickler-Ecke
Internet / Netzwerk - Fehlermeldung speichern
seddto - Di 01.06.04 14:53
Titel: Fehlermeldung speichern
Ich habe folgendes Probleme:
Ich verschicke mit den Indy Kompos eine eMail. Ich habe die "kritischen Anweisungsblöcke" mit "try...except" so eingeschlossen, das auch im Fehlerfall keine für den Anwender schwer verständlichen Fehlermeldungen ausgegeben werden, sondern im Except-Block nur eine Messagebox aufgeht, die besagt, das die Mail nicht gesendet wurde. Damit ich das Programm weiter verbessern kann möchte ich die vollständige fehlermeldung allerdings in einer Textdatei speichern. Ich habe es nit Syserrormessage(getlasterror) probiert, das funktioniert ja aber nur wenn es sich um einen System Error handelt wie zum Beispiel Computer ist nicht mit dem Internet verbunden oder ähnliches. Wenn aber ein anderer Fehler auftritt wie zb. Empfänger Adresse falsch oder Mailbox voll handelt es sich nicht um einen Systemerror und die im Fehler log steht dann sowas sinnvolles wie "Fehlermeldung: Der Vorgang wurde erfolgreich beendet." Weiss jemand wie ich die nicht-System-fehlermeldungen speichern kann?
FaTaLGuiLLoTiNe - Di 01.06.04 15:00
Die Klasse Exception besitzt eine Eigenschaft
Message, die Dir Deine Fehlermeldung liefern sollte ...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| try ... except On E.Exception do begin ShowMessage(E.Message); end; end; |
// edit: Dieser Code hat noch einen kleinen Fehler, den ich 2 Beiträge weiter unten korrigiert habe.
seddto - Di 01.06.04 15:19
mhh bei dem Aufruf gibts bei mir ne Fehlermeldung! Wie muss ich die Klasse Exception den deklarieren?
FaTaLGuiLLoTiNe - Di 01.06.04 15:27
Upps ... mein Fehler ... bin heute irgendwie wirsch ...
statt On E.Exception muss es heissen On E:Exception (mit Doppelpunkt)!
Extra deklarieren musst du die Klasse nicht, sie ist in der Unit SysUtils bereits vorhanden.
fuba - Sa 28.07.07 15:43
suche genau sowas auch, aber:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Button1Click(Sender: TObject); begin try RenameFile(ExtractFilePath(ParamStr(0)) + '2.txt', ExtractFilePath(ParamStr(0)) + '123?5.txt'); except on E:Exception do begin ShowMessage(E.Message); end; end; end; |
das ist mein code, nur ich bekomm keinen fehler zurrück.
Also ich bekomm GARNICHTS zurück, als würde ich nichts machen.
Mache ich das ganze aber so:
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.Button2Click(Sender: TObject); begin if NOT RenameFile(ExtractFilePath(ParamStr(0)) + '2.txt', ExtractFilePath(ParamStr(0)) + '123?5.txt') then RaiseLastOSError; end; |
bekomme ich das zurück:
Quelltext
1: 2:
| Systemfehler. Code: 123. Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch. |
und genau das möchte ich im string format bekommen,
damit ich es in ne log file speichgern kann oder was auch immer.
müsste doch möglich sein oder?
jakobwenzel - Sa 28.07.07 18:04
Wenn du das Fragezeichen aus dem Dateinamen rausnimmst, sollte es schon gehen.
fuba - Sa 28.07.07 19:58
jakobwenzel hat folgendes geschrieben: |
Wenn du das Fragezeichen aus dem Dateinamen rausnimmst, sollte es schon gehen. |
ok nochmal zum mitschreiben...
Dieses Thema umfasst
"Fehlermeldung speichern"
lies bitte nochmal ALLES von ganz oben und antworte mir dann nochmal :D
GTA-Place - Sa 28.07.07 21:06
Guck dir mal das Ereignis Application.OnException in der Hilfe an.
jaenicke - Sa 28.07.07 22:46
Delphi-Quelltext
1: 2: 3:
| if not RenameFile(ExtractFilePath(ParamStr(0)) + '2.txt', ExtractFilePath(ParamStr(0)) + '123?5.txt') then ShowMessage('Systemfehler! Fehlercode: ' + IntToStr(GetLastError) + ', Fehlermeldung: ' + SysErrorMessage(GetLastError)); |
fuba - Do 30.08.07 19:38
jaenicke hat folgendes geschrieben: |
Delphi-Quelltext 1: 2: 3:
| if not RenameFile(ExtractFilePath(ParamStr(0)) + '2.txt', ExtractFilePath(ParamStr(0)) + '123?5.txt') then ShowMessage('Systemfehler! Fehlercode: ' + IntToStr(GetLastError) + ', Fehlermeldung: ' + SysErrorMessage(GetLastError)); | |
Jup, genau so funzt es!
Danke dir!
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!