AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi Anmerkungn zum "Exceptions Tutorial"
Tutorial durchsuchen
Ansicht
Themen-Optionen

Anmerkungn zum "Exceptions Tutorial"

Ein Tutorial von matmok · begonnen am 26. Mai 2010
Antwort Antwort
matmok
Registriert seit: 9. Feb 2006
Hallo,

zum Abschnitt "Wieso kommt Delphi mit manchen Exceptions nicht klar?" im Tutorial Exceptions ist mir folgendes aufgefallen:

Man kann den Debugger doch dazu bringen an der richtigen Stelle stehen zu bleiben und die Exception korrekt anzuzeigen bzw. auszuwerten, indem man den Code wie folgt erweitert:

normal (der Debugger Zeigt die Stelle der Exception nicht korrekt an):
Delphi-Quellcode:
 Application.Initialize;
 Foo(); // in der Procedure Foo() der unit2 wird durch 0 geteilt => Exception
 Application.MainFormOnTaskbar := True;
 Application.CreateForm(TForm1, Form1);
 Application.Run;
besser (hier bleibt der Debugger dort stehen wo die Exception verursacht wird, also in Unit2.pas Zeile xy!):
Delphi-Quellcode:
 try
  Application.Initialize;
  Foo(); // in der Procedure Foo() der unit2 wird durch 0 geteilt => Exception
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
 except // durch diese Zeilen werden auch Exceptions vor Application.Run korrekt behandelt!
  Application.HandleException(Application);//
 end;
Was meint die Delphi-Gemeinde, kann man das so machen, sollte man das so machen, oder birgt das Gefahren?


Nachtrag: das "try except" sorgt dafür, dass mir die richtige Stelle angezeigt wird. (Ein "try finally" reicht nicht aus.)
Das Application.HandleException(Application) sorgt dann noch für die bekannte MessageBox.

mfg,
Tobi
 
Antwort Antwort


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 04:40 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