AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Exception abfragen mit "on E : Exception do ..."

Exception abfragen mit "on E : Exception do ..."

Ein Thema von moelski · begonnen am 23. Sep 2010 · letzter Beitrag vom 23. Sep 2010
Antwort Antwort
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

Exception abfragen mit "on E : Exception do ..."

  Alt 23. Sep 2010, 10:16
Delphi-Version: 2009
Moin !

Ich plage mich seit geraumer Zeit mit einem Connection Problem bei TIdImap4. Und Eurekalog schmeißt mir diesen Fehler raus:
Zitat:
2.5 Type : EIdConnectionStateError
2.6 Message : Unable to execute command, wrong connection state;Current connection state: Non Authenticated.
Nun habe ich diesen Code für den Connect:
Delphi-Quellcode:
    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;
Nur leider kriege ich nie Logeinträge für die Exception.

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 !?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#2

AW: Exception abfragen mit "on E : Exception do ..."

  Alt 23. Sep 2010, 10:25
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:
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;
Aber über on E: Exception do wäre der bessere Weg.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (23. Sep 2010 um 10:29 Uhr)
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#3

AW: Exception abfragen mit "on E : Exception do ..."

  Alt 23. Sep 2010, 10:29
Ich nehme alles zurück.

Die Exception stammt vom nächsten Befehl ListMailBoxes

Kein Wunder das der Exception Block dann nicht greift.
Aber es bestätigt dann doch meine Vermutung
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#4

AW: Exception abfragen mit "on E : Exception do ..."

  Alt 23. Sep 2010, 10:38
Willst du die Exception eigentlich nur Loggen und sie dann dem User vorenthalten?

Wenn nicht, dann reich sie am Ende einfach weiter
Delphi-Quellcode:
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;
oder gibt den User eine passende Meldung.

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;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#5

AW: Exception abfragen mit "on E : Exception do ..."

  Alt 23. Sep 2010, 10:58
Es geht mir nur ums Loggen.
Dem User kann das egal sein. Ist eh keine bediente Anwendung.

Zitat:
Ich weiß ja nicht wie dein Log aufgebaut ist, aber eventuell macht sich ein zusammenhängender Eintrag übersichtlicher
Das wird in der SmartInspect Konsole in einer Liste aufbereitet. Das passt schon so
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz