Short answer? Bang, the completion of the application.
From parashift :
During packet unwinding, all local objects in all of these stack frames are destroyed. If one of these destructors throws an exception (say, it throws a Bar object), the C ++ runtime system is in a situation without a win: should I ignore the panel and end in
} catch (Foo e) {
where was he originally headed? If he ignores Foo and searches
} catch (Bar e) {
handler? There is no good answer - any choice loses information.
Thus, C ++ guarantees that at that moment it will call terminate() , and terminate() will kill the process. Kill, you're dead.
Related stack overflow questions:
source share