Autor Beitrag
stiftmaster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149



BeitragVerfasst: Do 31.08.06 16:52 
Hallo Leute,

habe hier ein riesen Problem, was einfach total komisch ist...

Ich soll mit einer Funktion eine E-Mail versenden - klappt auch soweit ganz gut. Es gibt nur Probleme, wenn z.B. der Benutzername falsch ist. Dann schmeißt die Indy-Komponente eine Exception - soweit so gut. Daher habe ich einen Try-Except-Block drum gebaut, damit ich es abfangen kann und dementsprechend eine Fehlermeldung ausbringen kann.

Mein Code:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
      try
        SMTPClient.Connect;
      except
        on E: Exception do
        begin
          Writeln(E.Message);
        end;
      end;


Wenn SMTPClient.Connect eine Fehlermeldung schmeißt, dann springt der aus dem Try-Block raus - aber net in den Except-Block rein... Ich verstehe bloß nicht wieso... Die Exception ist doch gerade dafür da, dass die Meldung nicht hoch kommt und ordentlich abgefangen wird *total verwirrt*

Danke für eure Hilfe

Stefan
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Do 31.08.06 16:58 
Springt er gar nicht rein oder wird nur die Exception vorher angezeigt?
Wenn das Programm in Delphi läuft schmeißt der Debugger alle Exceptions, auch die (eigentlich) abgefangenen.

//Martok

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
stiftmaster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149



BeitragVerfasst: Do 31.08.06 17:08 
Hi,

die Exception wird ordnungsgemäß in Delphi geschmissen - so wie es sein soll. Nur nachdem die Exception geschmissen wurde, springt er nicht in den exception teil.

Das Programm ist ein CommandoZeilen-Tool. Wenn ich es über die Windows-Oberfläche starte, dann öffnet Windows so ein nettes Fenster mit "Programm XX hat ein Problem festgestellt und muss beendet werden." => und genau das will ich ja durch try-except verhindern :-)

Dankend

Stefan
stiftmaster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149



BeitragVerfasst: Do 31.08.06 17:24 
boooooooooooohr, manchmal pack ich mir selber an den Kopf und denk, wie dumm man manchmal ist :)

Delphi hat schon alles richtig gemacht - nur wird nach Connect auch direkt Send(MEssage) aufgerufen - und das schmeißt dann nochmal n' Fehler, weil ja keine gültige Verbindung zu Grunde liegt.

Dankend

Stefan