Thema: Delphi On exception behandeln

Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: On exception behandeln

  Alt 13. Jan 2007, 10:17
Zitat von ozz:
Hallo zusammen,
gibt es eigentlich auch eine Möglichkeit, für das nachfolgende Beispiel auch eine Möglichkeit, mehrere Exceptions zusammenzufassen? Natürlich kann ich eine Procedure oder Funktion angeben.
Eine direkte Möglichkeit gibt es dafür nicht, was aber auch gar nicht so schlecht ist. An sich möchtest du hier gerade verschiedene Fehler erkennen und unterscheiden (solltest diese also auch unterschiedlich abfangen können). Willst du mehr als einen Fehler auf gleiche Weise behandeln, so spricht einiges dafür, dass es sich um die selbe Fehlerklasse (nicht die gleiche Delphi-Klasse!) handelt. Fehlerklassen werden natürlich auch auf Klassen in Delphi abgebildet, hier könntest du also z.B. alle EMathError Exceptions abfangen und behandeln (EZeroDivide und EOverflow sind nur spezielle EMathError).
In einer Behandlung hast du zudem natürlich die Möglichkeit zu schauen, welche Klasse ein Fehler hat:

Delphi-Quellcode:
procedure handleException(e: Exception);
begin
  if (e.ClassType = EZeroDivide) or (e.ClassType = EOverflow) then
  begin
    // ...
  end;
end;
Schöner (eindeutiger) ist es aber trotzdem, wenn du hier wirklich gleichartige Fehler durch eine eigene Methode behandelst, also die Klassenhierachie auch ausnutzt.

Gruß Der Unwissende
  Mit Zitat antworten Zitat