OSZ Handel I
Informatik

Objektorientierte Programmierung
Ausnahmebehandlung - Delphi

S. Spolwig

[Home | Wirtschaftsgymnasium | Informatik | Unterrichtsmaterialien]

Neben Syntax- und Logikfehlern gibt es noch eine Klasse von Fehlern, die erst zur Laufzeit auftreten (und sichtbar sind), sog. Ausnahmen (Exceptions). Sie werden von der Anwendung oder Delphi generiert, sobald ein ungültiger oder fehlerhafter Zustand eintritt, z. B. nicht genügend Arbeitsspeicher vorhanden, eine Datei wird nicht gefunden, eine Division durch Null und mehr. Solche Probleme lassen sich meistens abfangen, wenn man vorher die kritischen Situationen erkennt.

Sofern man keinerlei programmiertechnische Maßnahmen trifft, bricht Delphi meistens das Programm mit einer Fehlermeldung ab.

Beispiel

In ein Editfeld soll der Benutzer eine Zahl eingeben.

 

Meldung

 

 

Er vertippt sich und gibt einen Buchstaben ein.

 

Delphi hält mit einer Fehlermeldung an, abhängig von der Debugger-Voreinstellung. s.u.

Das Problem läßt sich abfangen, da man weiß, daß Benutzer oft fehlerhafte Eingaben machen.

Delphi bietet dafür ein Konstrukt zum Exception Handling an:

try
   // geschützte Anweisungen
   ...

except
   // Anweisungen zur Ausnahmebehandlung
   ...

end;

Im except-Block läßt sich nun schreiben, wie das Programm weitergehen soll, wenn im try-Block etwas schief geht. Das kann ein spezieller Benutzungshinweis sein oder auch eine Routine, die das Programm richtig weiterlaufen läßt.

Meldung

 

 

Hier wird ein sog. EConvertError (s. Delphi-Hilfe) abgefangen und mit einer Meldung quittiert .

 

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
(* ----------------------------------------------------------------------- *)
begin
  if key = chr(13)
  then
    begin
      try
        preis := (strToInt(Edit1.Text));
        Panel1.Caption := floattostr(preis);
      except
        On EConvertError do
          showmessage('OOPS - Das sieht nicht wie eine Zahl aus!' + chr(10) +
                      'Geben Sie bitte einen gültigen Preis ein!');
      end;
    end;
end;

 

Debugger-Voreinstellung

 

DELHI-Menü-Tools-Debugger-Optionen

---> Integrierte Fehlersuche

Wenn das Kästchen angehakt ist, gibt Delphi zusätzlich eine ausführliche Benachrichtigung über Debugger-Exception aus.

Das ist während der Entwicklung ganz nützlich, sollte aber im fertigen Programm abschaltet werden.




                                        ====>



©    24. April 2006    Siegfried Spolwig