SYNOPSIS
        void raise_error(string arg);

BESCHREIBUNG
        Bricht die Ausfuehrung des laufenden Programms ab. Wenn das Programm
        durch catch() aufgerufen wurde, liefert dieses catch() <arg> als
        Fehlercode, sonst wird <arg> als Fehlermeldung ausgegeben.

        raise_error() gleicht in der Funktion throw(), aber waehrend throw()
        aus catch() heraus aufgerufen werden soll, kann raise_error() von
        ueberall her aufgerufen werden.

        Da raise_error() sich wie andere 'echte' Laufzeitfehler verhaelt,
        einschliesslich der Erzeugung eines Stack Backtraces, ist diese
        Funktion sehr zeitintensiv.

BEMERKUNGEN
        Der String sollte umgebrochen oder wenigstens mit einem \n terminiert
	werden, da die Ausgabe direkt an den interaktiven Magier erfolgen
	kann bzw. auf dem Debug-Kanal das letzte Zeichen entfernt wird.

SIEHE AUCH
        catch(E), throw(E)
