Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi try-except - HandleException-Befehl (https://www.delphipraxis.net/72106-try-except-handleexception-befehl.html)

simlei 25. Jun 2006 20:50

Re: try-except - HandleException-Befehl
 
SUPER (Beispiel 1 hat mir zugesagt)
da wäre auch gleich meine nächste Frage mitbeantwortet, wie ich die Ursache der Exception rauskriege...

Vielen Dank für die schnelle Hilfe - hat ja insgesamt nur ca. 10min gedauert!!

Muetze1 25. Jun 2006 20:50

Re: try-except - HandleException-Befehl
 
Zitat:

Zitat von TheAn00bis
Warum Pseudocode? Ohne "Application.HandleException" erfährt der User doch nicht, welche Exception ausgelöst wurde.

Wenn ich "Application.HandleException" in meinen Programmen nutze sagt mir eine MessageBox, welche Exception auftrat, ohne wird sie einfach "verschluckt".

Genau das will er erreichen.

Und wenn du die Exception anzeigen lassen willst, dann brauchst du kein Exception Handler - der von Application kommt dann eh zum tragen. Die Methode von Application die du da aufrufst wird standardmässig dem Application.OnException zugewiesen um alle nicht behandelten Exceptions anzuzeigen.

TheAn00bis 25. Jun 2006 20:56

Re: try-except - HandleException-Befehl
 
Zitat:

Zitat von Muetze1
Und wenn du die Exception anzeigen lassen willst, dann brauchst du kein Exception Handler - der von Application kommt dann eh zum tragen. Die Methode von Application die du da aufrufst wird standardmässig dem Application.OnException zugewiesen um alle nicht behandelten Exceptions anzuzeigen.

Demnach macht es ja keinen Unterschied, ob ich es aufrufe oder nicht. Aber wenn ich

Delphi-Quellcode:
procedure xyz;
var i: integer;
begin
  try
    i := strtoint('a');
  except
    Application.HandleException(nil);
  end;
end;
schreibe wird mir die Exception (auch ohne Debugger) angezeigt und wenn ich das "Application.HandleException(nil);" auskommentiere, dann nicht. Wenn es aber doch so oder so aufgerufen wird, warum wird mir dann nur im ersten Fall auch die Exception angezeigt?

Muetze1 25. Jun 2006 20:59

Re: try-except - HandleException-Befehl
 
Die Frage ist: in welchem Kontext rufst du die Procedure auf?

Dann wäre zum reinen Anzeigen der Exception wohl Application.ShowException() besser geeignet, oder?

TheAn00bis 25. Jun 2006 21:05

Re: try-except - HandleException-Befehl
 
Zitat:

Zitat von Muetze1
Die Frage ist: in welchem Kontext rufst du die Procedure auf?

Dann wäre zum reinen Anzeigen der Exception wohl Application.ShowException() besser geeignet, oder?

Mir ging es weniger darum, was besser wäre als zu verstehen, warum wenn das "Application.HandleException" so oder so aufgerufen wird nur wenn ich es explizit aufrufe die Messagebox erscheint.
Spielt der Kontext eine Rolle? Ich hatte jetzt an ButtonClick oder ähnliches gedacht.

Hawkeye219 25. Jun 2006 21:09

Re: try-except - HandleException-Befehl
 
Wenn du zwischen EXCEPT und END nichts hinschreibst, vernichtest du alles auftretenden Exceptions. Siehe hier

Gruß Hawkeye


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:23 Uhr.
Seite 2 von 2     12   

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