【发布时间】:2012-06-25 05:52:29
【问题描述】:
在我的程序中,我创建了动态 lambda 表达式,然后将它们编译为委托。然后调用这些委托以从我的实体中提取信息。 一些代表可能会抛出异常,我已经捕获了我调用代表的异常。我已启用“仅启用我的代码”并将 [DebuggerNonUserCode] 属性应用于 LambdaExpression 的创建位置、编译位置和调用位置。但是因为在Debug>Exceptions>Common Language Runtime Exceptions中勾选了Thrown复选框,Visual Studio总是在出现错误时停止,这给开发者带来了很大的不便。
似乎 [DebuggerNonUserCode] 应该以某种方式应用于已编译的委托,但是如何?还是有其他建议?
谢谢。
【问题讨论】:
-
它不是在第一次更改异常时停止吗?它们可以单独禁用。
-
不,它总是在出现错误时停止,而不仅仅是第一次。
-
你确定异常在某处被捕获。如果有未捕获的异常会导致应用程序崩溃,Visual Studio 总是会显示异常消息。
-
您可以先过滤特定异常的更改异常,或者将 lambda 代码更改为不会引发异常的内容。
-
即使您可以应用该属性,它似乎在 MSVS 2015 中有一个错误,无法达到目的:stackoverflow.com/questions/39382551
标签: c# visual-studio-2010 visual-studio debugging attributes