我在C#代码中有一个函数,其中定期抛出NullReferenceException(预期行为),但是被捕获。有没有办法告诉Visual Studio调试器不要在我的代码的这个特定部分中断这个异常?
编辑我需要在我的代码中的其他地方中断这个异常,但不能在同一个函数中。
答案 0 :(得分:12)
如果我理解正确,你要做的是调试一些NullReferenceException但想在调试时暂时忽略其他人,你可以通过标记你希望调试器忽略的函数来做到这一点。 DebuggerNonUserCode属性。
[DebuggerNonUserCode]
private void MyMethod()
{
// NullReferenceException exceptions caught in this method will
// not cause the Debugger to stop here..
}
注意这只有在所述方法中捕获异常时才有效。如果您将调试器设置为始终在NullReferenceException
异常中断,则只是它们不会导致调试器中断。而且这只适用于方法,而不适用于方法内的任意代码部分。
答案 1 :(得分:1)
假设异常没有冒泡到调用者,可以使用DebuggerHiddenAttribute来实现。
来自备注
Visual Studio 2005调试器不会在标有的方法中停止 此属性并不允许在中设置断点 方法
[DebuggerHidden]
private static void M()
{
try
{
throw new NullReferenceException();
}
catch (Exception)
{
//log or do something useful so as not to swallow.
}
}
答案 2 :(得分:-1)
您可以执行此操作,但它确实会影响解决方案中的所有异常。
Debug -> Exceptions -> Find... "Null Ref"
,de-tick Thrown。