Dokumentation zu: catch.de(E)

HR Image


SYNOPSIS
        mixed catch(expr, expr, ...);
        mixed catch(expr, expr, ...; modifiers);

BESCHREIBUNG
        Wertet die Ausdruecke <expr> aus. Wenn kein Fehler auftritt, wird 0
        zurueck geliefert. Wenn ein Fehler auftritt, wird die Ausfuehrung an
        diesem Punkt abgebrochen und ein String mit der Fehlermeldung wird
        zurueck gegeben.

        Systemeigene Fehlermeldungen beginnen mit einem "*", benutzerdefinierte
        Fehlermeldungen aus throw() und raise_error() (sofern von 0
        verschieden), werden unveraendert zurueck geliefert.

        Wenn zum Zeitpunkt, zu dem catch() aufgerufen wird, weniger als
        __CATCH_EVAL_COST__ Rechenticks uebrig sind, wird ein Laufzeitfehler
        RTE erzeugt und es werden keine Ausdruecke <expr> aus catch()
        ausgewertet.

        Das Verhalten von catch() kann durch <modifiers> veraendert werden:

            'nolog':    Normalerweise wird der Fehler im Fehlerlog
                        gespeichert, um die Fehlersuche zu erleichtern. Wird
                        'nolog' gesetzt, wird dieser Log-Eintrag unterdrueckt.
            'publish':  Normalerweise wird master::runtime_error() fuer einen
                        Fehler innerhalb eines catch() nicht aufgerufen. Mit
                        diesem <modifier> wird runtime_error() trotzdem
                        aufgerufen.

        Catch ist nicht im eigentlichen Sinne eine Efun, sondern eine Compiler
        Anweisung.

BEISPIEL
        object obj;
        string err;
        if(err = catch(obj = clone_object("/foo/bar/baz")))
            write("Kann das Objekt nicht clonen. Grund: "+err+"\n");

AENDERUNGEN
        LDMud 3.2.9 fuehrte den 'nolog' catch() als experimentelles Feature
            ein.
        LDMud 3.2.10 implementierte 'nolog' als offizielle Form und fuehrte
            zudem 'publish' ein.

SIEHE AUCH
        throw(E), raise_error(E), predefined(D), runtime_error(M)

Das Original der Seite ist in Englisch.

Start » Magierhandbuch » Docu » Efun.de » Catch.de Letzte Generierung: 16.04.2009, 21:45
Email an: mud@wl.mud.de
Valid HTML 4.01!