Moin pl,
mal der Versuch eines Beispiels aus den Naturwissenschaften: Im Allgemeinen ist die Division durch 0 nicht definiert, durch Grenzwertbildung kann man allerdings unendlich als Ergebnis setzen. Die Divison durch 0 ist ein arithmetischer Fehler, objektorientiert gesprochen also eine abgeleitete Klasse, in C++ könnte man das so modellieren:
class DivisionDurch0 : public ArithmetischerFehler {
// …
};
Die Vision wäre dann z.B. wie folgt modelliert:
float operator/(const float z, const float n) {
if (n == 0.) {
throw DivisionDurch0;
}
return z / n;
}
Ein Taschenrechner o.ä. wird im Allgemeinen Rechenfehler abfangen, während eine Anwendung aus der Physik mit unendlich umgehen kann, d.h.:
// Taschenrechner:
try {
float erg = zaehler / nenner;
}
catch (ArithmetischerFehler &af) {
// …
}
// Unendlich
float erg;
try {
erg = zaehler / nenner;
}
catch (DivisionDurch0 &dd0) {
erg = INFINITY;
}
Viele Grüße
Robert