Startseite   |  Site map   |  A-Z artikel   |  Artikel einreichen   |   Kontakt   |  
  


informatik artikel (Interpretation und charakterisierung)

Exceptions - ausnahmebehandlung - c


1. Java
2. Viren

7.1 Einfache Fehlerbehandlung mit Standartparameter
Man kennt vielleicht bereits das Dilemma: In einer Funktion wird ein Wert berechnet, bei dem abhängig von der Benutzereingabe eine Division durch Null auftritt. Jetzt können wir eine Ausgabe auf dem Bildschrim produzieren, dass Programm selbst jedoch läuft weiter, als wäre nichts gewesen.
Exceptions geben uns einen Mechanismus in die Hand, mit dem wir sofort an der Stelle der Fehlerursache an eine Stelle zur Fehlerbehandlung springen können und dabei noch einen Parameter beliebigen Typs mitschicken können. Böse Geister mögen dass als eine Art besseres GoTo bezeichnen. Exceptions sind jedoch ungleich mächtiger!! Zum Beispiel funktioniert der Sprung Funktionsübergreifend, und so ist es auch gedacht: Der Teil der Fehlerbehandlung geschieht immer im main-Teil, während die Ursachen zumeist in Unterfunktionen zu finden sind. (Natürlich muss man die Behandlung nicht im main-Teil machen, wenn sie an anderer Stelle erforderlich ist!)
Eine Ausnahmebahandlung besteht aus drei verschiedenen Teilen. Das Prinzip ist Folgendes: Versuche einmal, eine Funktion auszuführen (try). Wenn in der Funktion ein Fehler auftritt, dann erzeuge eine Ausnahme (throw, man spricht auch von geworfenen Ausnahmen). Diese fange dann im aufrufenden Programmteil ab (catch).
Dabei springt die Funktion THROW an die Stelle CATCH. Hinter throw kann ein Parameter beliebigen Typs stehen (also Zahlen- oder Textkonstanten oder -variablen, Strukturen, Klassen ...). Catch kann so überladen werden, dass es für jeden Typ eine eigene catch-Anweisung gibt.
WICHTIG: Für jeden geworfenen Fehlertyp muss es eine catch-Anweisung geben. Wirft man zum Beispiel einen Fehler vom Typ double, hat aber kein catch für diesen Typ, so produziert im Idealfall der Compiler einen Fehler, im Normalfall stürzt das Programm mit einer Allgemeinen Schutzverletzung ab!
Im übrigen wird das Programm nicht beendet, wenn der Fehler behandelt wurde. Vielmehr wird die Abarbeitung am Ende des letzten catch-Blockes fortgesetzt.
Ein einfaches Beispiel mit einer Funktion, die den Wert von 1/x berechnet. Für x = 0 soll eine Ausnahme geworfen werden, die als Parameter 1 zurückgibt. Falls x = 1 ist, soll eine Ausnahme geworfen werden, die den Text Der Wert ist 1 übergibt.
double f( double x )
{
if( x == 0 ) throw 1;

if( x == 1 ) throw \"Der Wert ist 1\";
return 1/x;
// Das geht so, weil die return-Anweisung ja nur erreicht wird,
// wenn x weder 0 noch 1 ist!

}
void main( )

{
double x = 1;

try
{ x = f(x); } catch( double err ) {cout

 
 

Datenschutz
Top Themen / Analyse
indicator Benutzen des Netscape-Caches
indicator Maus
indicator Serielle Schnittstelle
indicator Die Funktionen der SQS
indicator Wichtige didaktische Anmerkungen für den Unterrichtseinsatz:
indicator Optische datenträger
indicator Welche Vorteile bringt Homebanking dem Kunden?
indicator RAID 1 oder Drive Mirroring / Duplexing
indicator Aufbau eines Computers
indicator ROR


Datenschutz
Zum selben thema
icon Netzwerk
icon Software
icon Entwicklung
icon Windows
icon Programm
icon Unix
icon Games
icon Sicherheit
icon Disk
icon Technologie
icon Bildung
icon Mp3
icon Cd
icon Suche
icon Grafik
icon Zahlung
icon Html
icon Internet
icon Hardware
icon Cpu
icon Firewall
icon Speicher
icon Mail
icon Banking
icon Video
icon Hacker
icon Design
icon Sprache
icon Dvd
icon Drucker
icon Elektronisches
icon Geschichte
icon Fehler
icon Website
icon Linux
icon Computer
A-Z informatik artikel:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z #

Copyright © 2008 - : ARTIKEL32 | Alle rechte vorbehalten.
Vervielfältigung im Ganzen oder teilweise das Material auf dieser Website gegen das Urheberrecht und wird bestraft, nach dem Gesetz.
dsolution