暂时禁用第一次机会异常

时间:2012-03-22 12:38:29

标签: c++ visual-studio visual-c++ exception first-chance-exception

有没有办法暂时禁用Visual C ++中的第一次机会异常?

这样的事情:

void someFunc() {
   disableFirstChanceExceptions();

   try {
     // some code
   }
   catch (std::exception& e) {
     // some code
   }
   catch (...) {
     // some code
   }

   enableFirstChanceExceptions();
}

我知道第一次机会例外是什么以及如何使用它们。

问题是,我正在分发一个DLL,其中使用了例外 不幸的是,如果客户在他的程序中使用调试器,他会注意到我的实习生例外情况 并不是我想要隐藏它们,更重要的是我想要摆脱这些支持问题。

2 个答案:

答案 0 :(得分:3)

  • 您的代码会抛出异常。
  • 您的客户坚持要针对您的代码运行调试程序,明确配置它以打破第一次机会异常。

您基本上有两种选择:

  • 不抛出异常,或
  • 当您的客户愚蠢时忽略。您的代码在内部执行的操作不是他们的业务,只要它按预期工作即可。

我建议后者。如果他们遇到异常被抛出并被第三方代码捕获的问题,他们会发现自己无法使用很多的库。他们需要长大并开始表现得像他们知道自己在做什么。

答案 1 :(得分:0)

第一次机会异常不是可以在你的代码中打开和关闭的东西(仅谈论windows,vs,c ++链,不熟悉其他平台)。这是构造内置于运行时系统中以使调试成为可能。可以将调试器配置为忽略部分或全部第一次机会异常。您可以使用ctrl + alt + e调出VS调试器的异常处理行为菜单。这将允许客户端调试来过滤调试器捕获的内容。