当将库链接为DLL时,VisualStudio调试器会在处理后的异常上中断。

3
我遇到一个困扰,与C#应用程序有关。为了简化情景,我有一个主exe项目,它引用另一个C#库作为直接DLL依赖项。此DLL在特定位置引发异常,并且调试器会在这些地方中断。然而,异常已被处理并且未被重新引发。我的VS异常对话框已选中仅在此类型(InvalidOperationException)的用户未处理异常时使调试器中断,但它仍在中断。
然而,如果我将同一库作为项目引用(而不是编译后的DLL),则调试器不再在此异常上中断。
此外,如果我直接运行.exe程序(不在调试器中),我看不到任何证据表明此异常未按照我预期的方式处理。没有错误,而且我的日志记录显示了预期的控制流程。
相关代码已经基本保持不变了一段时间,但我已重构了解决方案和项目。我以前只使用项目引用,因此可能直到我开始使用DLL引用才发现此问题。
是否有人能建议我可能需要查看的其他内容,以查明为什么调试器会在此已处理的异常上中断?

非常奇怪。如果删除依赖的dll的pdb文件会发生什么? - Ikaso
没有变化,实际上在这种情况下没有PDB文件。(但我尝试过包含PDB文件的相同场景) - RJ Lohan
请查看此 SO 问题:http://stackoverflow.com/questions/10201622/how-can-i-prevent-swallowed-exceptions-in-3rd-party-libraries-from-triggering-th?rq=1 - Ikaso
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接