【问题标题】:Can you ignore an exception from a 3rd party dll IN A SPECIFIC PLACE with the VS2008 debugger?您可以使用 VS2008 调试器在特定位置忽略来自第 3 方 dll 的异常吗?
【发布时间】:2010-09-29 18:47:57
【问题描述】:

我正在使用第 3 方库 (Fluent NHibernate),当我在启用“中断所有公共语言运行时异常”的情况下运行时,它会在启动时引发无害的“找不到文件”异常(调试 | 异常...菜单) .

我意识到我可以取消选中特定的“找不到文件”异常,但如果这发生在我的代码中的其他地方,我不会得到休息。

有什么方法(pragma?attribute?)来抑制异常,但只在我知道它会发生的一个地方发生?

【问题讨论】:

    标签: visual-studio-2008 debugging


    【解决方案1】:

    在对相关问题进行了一些挖掘和SO浏览后,我通过不同的途径解决了问题。

    原来我关闭了“仅启用我的代码...”选项(它在工具/选项/调试中)。启用此选项还会在“例外”对话框中添加“用户未处理”列。

    我选中了公共语言运行时异常旁边的用户未处理框,并取消选中其他所有内容。

    现在,调试器会忽略来自 3rd 方库的异常,但会中断我的代码中没有本地处理程序的异常——这正是我想要的。

    【讨论】:

      【解决方案2】:

      我认为 VS 中没有此选项,但也许其他人知道一种方法。

      作为替代方案,您可以:

      • 禁用异常
      • 在代码开头放置断点
      • 将程序运行到断点
      • 重新启用该异常并继续。

      但是,这是手动操作,不能满足您作为永久解决方案的需求。

      【讨论】:

      • 谢谢,但我正在寻找一种以“永久”方式抑制异常的方法,即我想避免每次在调试器。
      • 我认为这不可能,但也许其他人知道方法。
      • 将其发布为答案,我会给你一个赞成票(Hans 是第一个,但他已经获得了近 100k 代表 ;-)
      • 我刚刚编辑了这篇文章以更合适并节省空间。非常感谢! :)
      【解决方案3】:

      启用仅我的代码...”选项已关闭(位于工具/选项/调试中)。 真的很有效

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-13
        • 1970-01-01
        • 1970-01-01
        • 2014-11-12
        • 1970-01-01
        • 1970-01-01
        • 2011-08-20
        • 2016-10-05
        相关资源
        最近更新 更多