#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;
}
|