我可以在 C++ 中实现全局异常处理吗? 我的要求是 try...catch block 没有在一段代码中使用,那么应该有一个全局异常处理程序来处理所有未捕获的异常。
能否实现,请提宝贵意见:)
最佳答案
我总是将最外层的函数包装在一个 try-catch 中,如下所示:
int main()
{
try {
// start your program/function
Program program; program.Run();
}
catch (std::exception& ex) {
std::cerr << ex.what() << std::endl;
}
catch (...) {
std::cerr << "Caught unknown exception." << std::endl;
}
}
这将捕获所有内容。 C++ 中良好的异常处理不是要从头到尾编写 try-catch,而是要在您知道如何处理它的地方捕获(就像您似乎想做的那样)。在这种情况下,唯一要做的就是将错误消息写入 stderr,以便用户可以对其进行操作。
关于c++ - C++ 中的全局异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4366739/