c++ - C++ 中的全局异常处理

标签 c++ exception-handling global

我可以在 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/

相关文章:

c++ vector emplace_back 更快?

c++ - QTableView 的 qt setItem 导致 "program not responding"

java - 使用异常映射器的 JAX-RS

c++ - 令人困惑的 C++ 全局范围问题

c++ - 在 C++ 中,如何迭代地访问几个名称仅因数字不同而不同的变量?

c++ - 如何将多参数模板传递给宏?

c# - C# 'is' 关键字在什么情况下会抛出异常?

c# - C# 异常中的异常处理

c# - 全局钩子(Hook)(非事件程序)

javascript - 访问全局 JavaScript 变量时出现问题