3 Stimmen

Behandlung von Ausnahmen - was passiert nach dem Verlassen von catch

Stellen Sie sich also vor, Sie haben eine Ausnahme, die Sie abfangen, und in der Abfangphase schreiben Sie dann in eine Protokolldatei, dass eine Ausnahme aufgetreten ist. Dann wollen Sie, dass Ihr Programm weiterläuft, also müssen Sie sicherstellen, dass bestimmte Invarianten noch in einem guten Zustand sind. Aber was passiert eigentlich im System, nachdem die Ausnahme durch einen Catch "behandelt" wurde?

Der Stapel wurde zu diesem Zeitpunkt abgewickelt, wie kann er also seinen Zustand wiederherstellen?

0voto

James Kanze Punkte 146902

Das kann es nicht. Ausnahmen sind in C++ nicht wiederaufnehmbar. Auch nicht in den meisten modernen Sprachen; einige der ersten Sprachen, die Ausnahmen unterstützen Ausnahmen unterstützten, unterstützten resumierbare Ausnahmen und stellten fest, dass es keine gute Idee war.

Wenn Sie an einem bestimmten Punkt fortfahren möchten, müssen Sie müssen Sie Ihren try/catch-Block dort platzieren. Wenn Sie nur protokollieren wollen und fortfahren wollen, sollten Sie die Ausnahme gar nicht erst auslösen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X