Einzelnen Beitrag anzeigen

matmok

Registriert seit: 9. Feb 2006
Ort: Köln
22 Beiträge
 
Delphi 2007 Enterprise
 
#1

Anmerkungn zum "Exceptions Tutorial"

  Alt 26. Mai 2010, 13:39
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
  Mit Zitat antworten Zitat