zurück weiter

Ausnahmebehandlung
Beispiel 4

G.Eichelsdörfer
Staatliche Technikerschule Weilburg

Der Ausnahme-Informations-Typ ist hier ein selbstdefinierter Struct.
'x' steht für Exception (= Ausnahme).

#include <iostream>

struct Tx // Datenverbund als Ausnahmeinfo-Typ
{
 int id;
 char *msg;
};

double Kehrwert(double x)
{
 if (x==0.0L)
 {
  Tx exc = {1,"Ausnahme in \"Kehrwert\": Division durch Null"};
  throw exc;
 }
 return 1/x;
}

int main()
{double x, y;
 cout << "Vierte Demonstration einer Ausnahmebehandlung\n" << endl
  << "Hier wird der Kehrwert einer eingegebenen Fliesskommazahl berechnet." << endl
  << "Bei Eingabe einer Null wird eine Exception ausgeloest.\n" << endl;
 try
 {
  while(1)
  {
   cout << "Geben Sie eine Fliesskommazahl ein: ";
   cin >> x;
   y = Kehrwert(x);
   cout << "Der Kehrwert von " << x << " ist " << y << ".\n" << endl;
  }
 }
 catch(Tx exc)
 {
  cout << endl << exc.msg << " (Id = " << exc.id << ")" << endl;
 }
 return 0;
}