Autor |
Beitrag |
seddto
      
Beiträge: 56
|
Verfasst: Di 01.06.04 14:53
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
      
Beiträge: 200
Erhaltene Danke: 5
Windows 7, Windows 8.1
Delphi XE
|
Verfasst: 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.
_________________ << FaTaLGuiLLoTiNe >>
Rhinoceroses don't play games!
Zuletzt bearbeitet von FaTaLGuiLLoTiNe am Di 01.06.04 16:39, insgesamt 2-mal bearbeitet
|
|
seddto 
      
Beiträge: 56
|
Verfasst: Di 01.06.04 15:19
mhh bei dem Aufruf gibts bei mir ne Fehlermeldung! Wie muss ich die Klasse Exception den deklarieren?
|
|
FaTaLGuiLLoTiNe
      
Beiträge: 200
Erhaltene Danke: 5
Windows 7, Windows 8.1
Delphi XE
|
Verfasst: 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.
_________________ << FaTaLGuiLLoTiNe >>
Rhinoceroses don't play games!
|
|
fuba
      
Beiträge: 125
Win7
D7 Ent.
|
Verfasst: 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
      
Beiträge: 1889
Erhaltene Danke: 1
XP home, ubuntu
BDS 2006 Prof
|
Verfasst: Sa 28.07.07 18:04
Wenn du das Fragezeichen aus dem Dateinamen rausnimmst, sollte es schon gehen.
_________________ I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
|
|
fuba
      
Beiträge: 125
Win7
D7 Ent.
|
Verfasst: 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 
|
|
GTA-Place
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: Sa 28.07.07 21:06
Guck dir mal das Ereignis Application.OnException in der Hilfe an.
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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
      
Beiträge: 125
Win7
D7 Ent.
|
Verfasst: 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!
|
|