防止调试器在编译的LambdaExpression中停止异常

时间:2012-06-25 05:52:29

标签: c# visual-studio-2010 visual-studio debugging attributes

在我的程序中,我创建动态lambda表达式,然后将它们编译为委托。然后调用这些代理以从我的实体中提取信息。 一些代表可能会抛出异常,我已经抓住了我调用代理的异常。我已启用“仅启用我的代码”并将[DebuggerNonUserCode]属性应用于创建LambdaExpression的位置,已编译的位置以及调用的位置。但是因为在Debug> Exceptions> Common Language Runtime Exceptions中,选中了Thrown复选框,visual studio总是在错误上停止,这对开发人员来说是一个很大的不便。

似乎[DebuggerNonUserCode]应该以某种方式应用于已编译的委托,但是如何?还是其他任何建议?

感谢。

1 个答案:

答案 0 :(得分:1)

据我所知,你不能将属性应用于使用表达式生成的匿名方法,除了动态类型生成可能会有些可怕的麻烦。

但是,可能的建议是转到Debug > Exceptions中的例外菜单,并选择要特定的中断例外。如果你的表达式倾向于抛出特定类型的异常,你可以禁止打破这些异常。