Tig*_*ine 3 .net debugging exception
我维护一个开源库,该库在递归方法调用期间在内部使用异常。异常在调用堆栈上被收回并在某些情况下进行处理,而在其他情况下它将返回给调用者。
我们现在遇到的问题是,一些用户运行 Visual Studio 调试器时选择了“发生所有异常时停止”选项,因此他们的调试器将在我们的代码正常运行时停止。
除了告诉用户禁用该设置之外,还有什么方法可以防止这种情况发生吗?比如,也许可以在代码中应用一些属性?
这是很有可能的。您需要做的就是让 Visual Studio 将相关代码视为非用户代码,然后在调试器设置中启用“Just my code”选项:
\n\n
有多种方法可以让 Visual Studio 相信您的库不是用户代码。一种是简单地编译没有 PDB 文件的发布版本。另一种方法是用标记您的代码DebuggerNonUserCodeAttribute。
\xe2\x80\x99s 是一个演示项目,展示了这些内容的实际操作:\n https://bitbucket.org/rstarkov/demononusercode/src \xe2\x80\x93 请注意 MyLibrary 中的方法是如何用非用户标记的- 代码属性。即使您告诉 Visual Studio 对所有异常停止“抛出”,它仍然会跳过 MyLibrary 中的异常。
\n\n对于它的价值,我不认为你所做的事情是错误的。这是正确配置调试器的问题。仅仅因为有人将调试器设置为停止所有事情而不使用任何异常听起来并不完全正确。
\n| 归档时间: |
|
| 查看次数: |
1075 次 |
| 最近记录: |