Es liegt an Ihnen, dafür zu sorgen, dass die Anwendung nach dem Abfangen der Ausnahme wieder in einen stabilen Zustand gebracht wird. In der Regel wird dies dadurch erreicht, dass die Operation oder Änderung(en), die die Ausnahme verursacht haben, "vergessen" werden und auf einer höheren Ebene neu begonnen wird.
Dazu gehört auch, dass alle Ressourcen, die während der Ereigniskette, die zur Ausnahme führt, zugewiesen wurden, ordnungsgemäß freigegeben werden. In C++ ist das Standardidiom, um dies zu gewährleisten RAII .
Update
Wenn beispielsweise bei der Verarbeitung einer Anfrage in einem Webserver ein Fehler auftritt, wird in einer Funktion auf niedrigerer Ebene eine Ausnahme erzeugt, die in einer Klasse auf höherer Ebene abgefangen wird (möglicherweise direkt im Top Level Request Handler). In der Regel ist es am besten, alle vorgenommenen Änderungen rückgängig zu machen und alle Ressourcen freizugeben, die bisher im Zusammenhang mit der eigentlichen Anfrage zugewiesen wurden, und eine entsprechende Fehlermeldung an den Client zurückzugeben. Zu den Änderungen können DB-Transaktionen, Dateischreibvorgänge usw. gehören - all dies muss auf ausnahmesichere Weise implementiert werden. Datenbanken verfügen in der Regel über eingebaute Transaktionen, um dies zu bewältigen; bei anderen Ressourcen kann es schwieriger sein.