![]() |
try-except - HandleException-Befehl
Zitat:
Delphi7 schreibt aber bei mir in dieser Try-Except-Routine ...
Delphi-Quellcode:
... [Error] Unit3.pas(92): Undeclared identifier: 'HandleException' ...
try
fl_colorline := getcolor(Flaechen_ColorLine.Text); fl_colorpt := getcolor(Flaechen_ColorPt.Text); line_colorline := getcolor(Linien_ColorLine.Text); line_colorpt := getcolor(Linien_ColorPt.Text); pt_colorpt := getcolor(Punkte_ColorPt.Text); fl_radius := StrToInt(Flaechen_Radius.Text); line_radius := StrToInt(Linien_Radius.Text); pt_radius := StrToInt(Punkte_Radius.Text); fl_drawline := Flaechen_Check1.Checked; fl_drawpt := Flaechen_Check2.Checked; line_drawpt := Linien_Check1.Checked; except HandleException; ShowMessage('EXCEPTION!!!!'); end; Warum tritt diese Meldung auf (in der Hilfe ist er doch dokumentiert)? Braucht man für dieses HandleException etwa eine bestimmte Unit? Und wenn das bei mir so nicht funktionieren sollte, steht dann hier die Frage, wie ich sonst alle Exceptions, die in dem Befehlsblock zwischen Try und Except auftreten, blocken kann (sie erscheinen nicht auf dem Bildschirm) und dafür dann eigene Maßnahmen zur Behandlung des Fehlers ergreifen kann (Hier als Beispiel die Ausgabe in ShowMessage). |
Re: try-except - HandleException-Befehl
Vielleicht "Application.HandleException;" ?
|
Re: try-except - HandleException-Befehl
hmm. da gibt es tatsächlich ein "HandleException(Sender:TObject)" - aber in der Delphihilfe waren ja keine Parameter verlangt. Funktioniert dieses auch? bzw. wenn ja was muss das TObject sein? Das Form, in dem die Exception verursacht wird? (oder was sonst?)
Nachtrag... wenn ich als Sender Form3 nehme (der Delphi-Code steht im Form3) dann kommt trotzdem ne Exception... |
Re: try-except - HandleException-Befehl
Übergib einfach "nil", der Parameter ist überflüßig.
|
Re: try-except - HandleException-Befehl
Ähm, euch ist doch hoffentlich klar, das das Pseudocode ist. Die Delphi Hilfe will mit "HandleException" darauf hinweisen, dass man dort die Exceptions handeln soll. Es geht hier nicht um den Aufruf einer Funktion.
Die Application.HandeException() wird eh immer aufgerufen, wenn eine Exception bis nach ganz "oben" durchschlägt. |
Re: try-except - HandleException-Befehl
Hmm. das mit dem nil hat nmicht geklappt... Und wenn das ein Pseudocode ist, wie kann ich mein Ziel nun erreichen?
|
Re: try-except - HandleException-Befehl
Zitat:
Möglichkeit 1:
Delphi-Quellcode:
Möglichkeit 2:
Try
... Except On E: Exception Do ShowMessage(Format('Exception %s aufgetreten: %s', [E.ClassName, E.Message])); End;
Delphi-Quellcode:
Try
... Except ShowMessage(Format('Exception %s aufgetreten: %s', [Exception(ExceptObject).ClassName, Exception(ExceptObject).Message])); End; |
Re: try-except - HandleException-Befehl
ich will - siehe oben - dass das Exceptionfenster nicht mehr angezeigt wird.
|
Re: try-except - HandleException-Befehl
Zitat:
Nur um die Exception Meldung zu unterdrücken kannst du den Except/End Block leer lassen. Damit werden die Exceptions abgefangen und schlagen sich nicht mehr eine Ebene höher durch. Das die Exceptionmeldung in der IDE angezeigt wird ist ganz normal. Entweder schaltest du dies Verhalten in der IDE ab oder du kontrollierst deine EXE in dem du sie vom Explorer aus startest. |
Re: try-except - HandleException-Befehl
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". |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:50 Uhr. |
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