Eigene exception



  • gafabi schrieb:

    tatsächlich....nur verstehen tu ichs im moment noch nicht .....warum meckert er da. die reihenfolge ist doch egal oder nicht?

    Nein, ist sie eben nicht. Ist genauso mit if/else, die werden ja auch der Reihe nach abgearbeitet.
    Und da MyException auch nur ein runtime_error ist, gilt er schon als "gefangen" und wird niemals gesondert behandelt.

    Das läuft ungefähr so:
    Code wirft Exception. Sofort wird aus try heraus gesprungen. Nun wird von oben nach unten der Typ der geworfenen Exception mit dem in dem "catch" verglichen. Wenn es passt (und das tut es eben auch, wenn es nur eine abgeleitete Klasse ist) wird in den catch-Block gesprungen, danach gilt der Fehler hier als bearbeitet, die weiteren catch werden ignoriert. Wenn die exception nicht erneut geworfen wird (oder auch nicht abgefangen wurde) und damit im Aufruf-Stack einen Aufruf nach oben gesprungen wird, läuft der Code weiter hinter den ganzen catch.



  • alles klar. danke für die erklärung und hilfe!


Anmelden zum Antworten