gpt4 book ai didi

.net - 防止调试器中断第 3 方库中的所有异常

转载 作者:行者123 更新时间:2023-12-02 08:57:49 26 4
gpt4 key购买 nike

我维护一个开源库,它在递归方法调用期间在内部使用异常。异常在调用堆栈中被收回并在某些情况下得到处理,而在其他情况下它将返回给调用者。

我们现在遇到的问题是一些用户在运行 Visual Studio 调试器时使用了“所有异常时停止”选项,因此他们的调试器将在我们的代码正常运行时停止。

除了告诉用户禁用该设置之外,还有什么方法可以防止这种情况发生吗?例如,可以将某些属性应用于代码吗?

最佳答案

这很有可能。您需要做的就是让 Visual Studio 将相关代码视为非用户代码,然后启用“Just my调试器设置中的“代码”选项:

enter image description here

several ways of convincing Visual Studio that your library is not user code .一种是简单地编译没有 PDB 文件的发布版本。另一个是mark your code with DebuggerNonUserCodeAttribute .

有一个演示项目展示了这些东西的实际效果: https://bitbucket.org/rstarkov/demononusercode/src – 注意 MyLibrary 中的方法是如何用非用户代码属性标记的。即使您告诉 Visual Studio 停止所有异常的“抛出”,它仍然会跳过 MyLibrary 中的异常。

就其值(value)而言,我不认为您所做的是错误的。这是正确配置调试器的问题。仅仅因为有人将他们的调试器设置为停止所有内容而不使用任何异常听起来并不完全正确。

关于.net - 防止调试器中断第 3 方库中的所有异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3541116/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com