Almetare
1.15
Alle meine Taschenrechner - Eine C++-Bibliothek zur Entwicklung von Taschenrechnern
|
Klasse zur Ausnahmebehandlung "Division durch 0". Mehr ...
#include <fraction.h>
Klasse zur Ausnahmebehandlung "Division durch 0".
Sowohl GNUs gcc als auch MSVC erzeugen standardmaessig keine Exception bei Fliesskommafehlern (Ueberlauf, Division durch Null etc.; stattdessen wird, wenn man eine bei einem Fehler erzeugte Fliesskommavariable in einen String-Stream schreibt, ein Text wie "-1.#IND" oder "nan" erzeugt:
Daher wird in Almetare zur Fehlererkennung geprueft, ob bei einer Operation ein solcher String erzeugt wurde. Bei Integer-Arithmetik ist das allerdings anders, wie sich leider erst spaeter herausgestellt hat: Hier wird eine Exception ausgeloest und das Programm stuerzt ab. Daher ist hierfuer eine C++-Ausnahmebehandlung noetig. Die Klasse ZeroDivide ist der Ausnahmedatentyp und hat sonst keine Funktion.