AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

try-except - HandleException-Befehl

Ein Thema von simlei · begonnen am 25. Jun 2006 · letzter Beitrag vom 25. Jun 2006
Antwort Antwort
Seite 1 von 2  1 2      
simlei

Registriert seit: 23. Nov 2005
119 Beiträge
 
Delphi 7 Professional
 
#1

try-except - HandleException-Befehl

  Alt 25. Jun 2006, 20:20
Zitat:
An exception block that contains no exception handlers, but instead consists only of a list of statements, handles all exceptions. For example,

try
...
except
HandleException;
end;

Here, the HandleException routine handles any exception that occurs as a result of executing the statements between try and except.
...schrieb die Delphi-Hilfe so schön.
Delphi7 schreibt aber bei mir in dieser Try-Except-Routine ...

Delphi-Quellcode:
  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;
... [Error] Unit3.pas(92): Undeclared identifier: 'HandleException' ...

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).
  Mit Zitat antworten Zitat
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#2

Re: try-except - HandleException-Befehl

  Alt 25. Jun 2006, 20:23
Vielleicht "Application.HandleException;" ?
  Mit Zitat antworten Zitat
simlei

Registriert seit: 23. Nov 2005
119 Beiträge
 
Delphi 7 Professional
 
#3

Re: try-except - HandleException-Befehl

  Alt 25. Jun 2006, 20:33
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...
  Mit Zitat antworten Zitat
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#4

Re: try-except - HandleException-Befehl

  Alt 25. Jun 2006, 20:37
Übergib einfach "nil", der Parameter ist überflüßig.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: try-except - HandleException-Befehl

  Alt 25. Jun 2006, 20:39
Ä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.
  Mit Zitat antworten Zitat
simlei

Registriert seit: 23. Nov 2005
119 Beiträge
 
Delphi 7 Professional
 
#6

Re: try-except - HandleException-Befehl

  Alt 25. Jun 2006, 20:40
Hmm. das mit dem nil hat nmicht geklappt... Und wenn das ein Pseudocode ist, wie kann ich mein Ziel nun erreichen?
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: try-except - HandleException-Befehl

  Alt 25. Jun 2006, 20:42
Zitat von simlei:
Hmm. das mit dem nil hat nmicht geklappt... Und wenn das ein Pseudocode ist, wie kann ich mein Ziel nun erreichen?
Behandle an der Stelle die Exceptions! Was fehlt dir denn nun noch? Schmeiss dort die ShowMessage aus oder vllt. auch noch den Klassennamen und Meldungstext der Exception - aber was nun noch? Was ist dir unklar? Was fehlt dir?

Möglichkeit 1:
Delphi-Quellcode:
Try
  ...
Except
  On E: Exception Do
    ShowMessage(Format('Exception %s aufgetreten: %s', [E.ClassName, E.Message]));
End;
Möglichkeit 2:
Delphi-Quellcode:
Try
  ...
Except
  ShowMessage(Format('Exception %s aufgetreten: %s', [Exception(ExceptObject).ClassName, Exception(ExceptObject).Message]));
End;
  Mit Zitat antworten Zitat
simlei

Registriert seit: 23. Nov 2005
119 Beiträge
 
Delphi 7 Professional
 
#8

Re: try-except - HandleException-Befehl

  Alt 25. Jun 2006, 20:44
ich will - siehe oben - dass das Exceptionfenster nicht mehr angezeigt wird.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: try-except - HandleException-Befehl

  Alt 25. Jun 2006, 20:46
Zitat von simlei:
ich will - siehe oben - dass das Exceptionfenster nicht mehr angezeigt wird.
Wird es doch auch nicht. Starte die EXE vom Explorer aus und staune...

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.
  Mit Zitat antworten Zitat
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#10

Re: try-except - HandleException-Befehl

  Alt 25. Jun 2006, 20:46
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".
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 20:51 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