#include <fraction.h>
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:
double nix = 0.0; double val = 3.0/nix; strstream str; str << val << ends; string valStr = str.str(); => valStr = "nan"
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.
1.4.1