ich war hier: ObjProg03Exceptions

Version [22765]

Dies ist eine alte Version von ObjProg03Exceptions erstellt von RonnyGertler am 2013-03-28 23:41:40.

 

 (image: http://wdb.fh-sm.de/uploads/QualipaktLehre/BMBF_Logo_klein.jpg)

Objektorientierte Programmierung - Kapitel 3 - Exceptions


Inhalte von Dr. E. Nadobnyh
Attachments
File Last modified Size
oop13.gif 2023-10-06 18:37 15Kb
oop14.gif 2023-10-06 18:37 4Kb

3.1. Traditionelle Fehlerbehandlung


Mögliche Fehlerursachen


1) Division durch Null,

2) zu große oder zu kleine Werte für einen Datentyp,

3) kein dynamischer Speicher mehr verfügbar,

4) Fehler beim Dateizugriff, z.B. Datei nicht vorhanden,

5) ungültige Adresse im Hauptspeicher,

6) fehlerhafte Eingaben durch den Benutzer,

7) Bereichsüberschreitung eines Arrays.


Fehlersituation


Eine Fehlersituation ist ein Verstoß gegen die Spezifikation der Operation. Wenn die Aufgabe der Operation nicht erfüllt ist, ist es meist sinnlos, weitere Anweisungen auszuführen.

Wegen der aufgetretenen Fehlersituation muss die normale Ausführungsreihenfolge unterbrochen werden, um die Fehlersituation zu behandeln.

Beispiel:

   if(b==0)
   {  //Die Fehlersituation ist ermittelt.
       //Die normale Ausführungsreihenfolge muss  
       //unterbrochen werden.
       //Ohne Behandlung tritt der Fehler auf.
   }
   c = a / b ;  



Erkennung und Behandlung von Fehler


1) Der Autor einer Bibliothek kann Fehlersituation erkennen, aber er weiß nicht, wie er sie behandeln soll.

Die Umgebung der Fehlersituation ist eine Stelle im Programm, wo die Fehlersituation entsteht.

2) Der Anwender einer Bibliothek weiß, wie er die Fehlersituation behandeln kann, hat aber keine Möglichkeit sie
zu entdecken.

Die Aufrufumgebung ist eine Stelle im Programm, wo die Fehlersituation behandelt werden kann.

Begriffsdiskussion: Fehlersituationsbehandlung und Fehlerbehandlung


Traditionelle Fehlerbehandlung. Fehlernummer


1) Meldungsausgabe und Programmabbruch, z.B. exit(-2);

2) Übergabe der Fehlernummer an den Aufrufer.

Die Nummer gibt Auskunft über Erfolg oder Misserfolg der Funktionsausführung und kann

  • als Parameter,
  • als Rückgabewert oder
  • mittels globaler Variable

zurückgeliefert werden.

3) Fehlerbehebung, z.B. durch Wiederholung der Eingabe

Demo 1. Fehlernummer


Traditionelle Behandlung. Nachteile


1) Jeder Programmierer entwickelt eigene Regeln für den Umgang mit Fehlersituationen.

Ein Beispiel ist die C-Funktion getchar(), die ein Zeichen liest und zurückliefert. Damit neben jedem beliebigen Zeichen auch ein Fehlerwert zurückgeliefert werden kann, ist der Typ des Rückgabewertes nicht char, sondern int.

2) Nach jedem Aufruf müssen die Fehlerabfragen durchgeführt werden. Dadurch wird das Programm beträchtlich aufgeblasen.


3.2. Grundbegriffe


Exception-Konzept


Eine Exception (Ausnahme) ist eine Kontrollstruktur, welche den Übergang (Sprung) von der Umgebung der Fehlersituation zur Aufrufumgebung erfüllt.

Vorteile:

1) Konzept beruht auf der Trennung des normalen Programmablaufs und der Behandlung von Fehlersituationen.

2) Fehlersituationen werden in der Aufrufumgebung behandelt. Die Fehlersituationen können zentral behandelt werden.

3) Das Programmverhalten wird überschaubar und sicherer.

Anmerkung: Durch eine Exception kann auch eine Fehlersituation bezeichnet werden.


Schlüsselwörter try, catch, throw


Die Ausnahmebehandlung lässt sich wie folgt skizzieren:

1) Eine Funktion versucht (try) die Erledigung einer Aufgabe.

2) Wenn diese Funktion eine Fehlersituation feststellt, die sie nicht beheben kann, wird ein Ausnahmeobjekt (Exception-Objekt, Fehlerobjekt) ausgeworfen (throw) bzw. wird eine Ausnahme (Exception) ausgelöst.

3) Dieses Ausnahmeobjekt wird von einer Ausnahmebehandlungsroutine (Exception-Handler) aufgefangen (catch), die die Fehlersituation bearbeitet.


Rückzugsvarianten












CategoryObjProg
Diese Seite wurde noch nicht kommentiert.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki