![]() |
Delphi-Version: 2009
Exception abfragen mit "on E : Exception do ..."
Moin !
Ich plage mich seit geraumer Zeit mit einem Connection Problem bei TIdImap4. Und Eurekalog schmeißt mir diesen Fehler raus: Zitat:
Delphi-Quellcode:
Nur leider kriege ich nie Logeinträge für die Exception.
try
ConnState := TheImap.Connect(True); except on E : Exception do begin SiMain.LogFatal('Connect : Exception class name = '+E.ClassName); SiMain.LogFatal('Connect : Exception message = '+E.Message); end; end; Drum mal die allgemeine Frage .. Muss ich dort explizit auf EIdConnectionStateError abfragen? Ich hätte jetzt vermutet da EIdConnectionStateError letztlich von Exception abgeleitet ist, dass das auch so funzt. Tut´s aber nicht. Nur warum !? |
AW: Exception abfragen mit "on E : Exception do ..."
EIdConnectionStateError sollte (hoffentlich) irgendwo die Exception-Klasse als Vorfahren haben.
Und diese On-Statemenst sollten alles abfangen, welches entweder der angegebenen Klasse entspricht oder diese als Vorfahren hat. Also eigentlich sollte es funktionieren. Was passiert denn hier?
Delphi-Quellcode:
Aber über
try
ConnState := TheImap.Connect(True); except SiMain.LogFatal('Connect : Exception class name = ' + ExceptObject.ClassName); if ExceptObj is Exception then SiMain.LogFatal('Connect : Exception message = '+ Exception(ExceptObject).Message); end;
Delphi-Quellcode:
wäre der bessere Weg.
on E: Exception do
|
AW: Exception abfragen mit "on E : Exception do ..."
Ich nehme alles zurück.
Die Exception stammt vom nächsten Befehl ListMailBoxes :oops: Kein Wunder das der Exception Block dann nicht greift. Aber es bestätigt dann doch meine Vermutung :) |
AW: Exception abfragen mit "on E : Exception do ..."
Willst du die Exception eigentlich nur Loggen und sie dann dem User vorenthalten?
Wenn nicht, dann reich sie am Ende einfach weiter
Delphi-Quellcode:
oder gibt den User eine passende Meldung.
try
ConnState := TheImap.Connect(True); except on E : Exception do begin SiMain.LogFatal('Connect : Exception class name = ' + E.ClassName); SiMain.LogFatal('Connect : Exception message = ' + E.Message); Raise; end; else Raise; end; Ich weiß ja nicht wie dein Log aufgebaut ist, aber eventuell macht sich ein zusammenhängender Eintrag übersichtlicher
Delphi-Quellcode:
try
ConnState := TheImap.Connect(True); except on E : Exception do begin SiMain.LogFatal('Connect : ' + E.ClassName + ' message = ' + E.Message); ShowException(E, ExceptAddr); end; else Raise; end; |
AW: Exception abfragen mit "on E : Exception do ..."
Es geht mir nur ums Loggen.
Dem User kann das egal sein. Ist eh keine bediente Anwendung. Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz