[GotW.ca: Herb Sutter] Uncaught Exceptions
[cppref] std::uncaught_exceptions
[GSL] final_act allows you to ensure something gets run at the end of a scope
#include <iostream>
#include <exception>
#include <stdexcept>
struct Foo {
~Foo() {
if (std::uncaught_exception()) {
std::cout << "~Foo() called during stack unwinding\n";
} else {
std::cout << "~Foo() called normally\n";
}
}
};
int main()
{
Foo f;
try {
Foo f;
std::cout << "Exception thrown\n";
throw std::runtime_error("test exception");
} catch (const std::exception& e) {
std::cout << "Exception caught: " << e.what() << '\n';
}
}
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.