Ausnahme Behandlung



  • Hallo,
    Ich habe noch mal eine Frage zu Ausnahmebehandlung im Zusammenhang mit einer Dynamischen Liste.

    template<class T>
    void Liste<T>::pop_back() {
        if(empty()) throw "pop_back(): Liste ist leer!";
        Listenelement *temp = ende;
        ende = temp->vorgaenger;
        if (!ende)    // d.h. kein weiteres Element vorhanden
            anfang = NULL;
        else
            ende->naechstes = NULL;
        delete temp;
        --anzahl;
    }
    

    Hier wird ja falls die Liste schon leer ist eine Ausnahme geworfen. Aber Die Operationen mit der Liste werden trotzdem durchgeführt. Ist das sinnvoll?



  • Was wird soll da nach dem throw noch ausgeführt werden?

    Ein throw verlässt sofort die aktuelle Stelle und springt in den catch Handler (Nach dem Rollback natürlich).

    Bei allem, was nach dem throw kommt kannst du annehmen, dass die Liste nicht leer ist.



  • Ah na dann ist es natürlich richtig so. Danke.


Anmelden zum Antworten