visual studio:告诉部分代码在调试时没有异常中断

时间:2013-10-01 16:52:17

标签: c# visual-studio-2010

我正在调试代码中的异常,而我的调试器在出现时就会中断。

我希望我的调试会话能够在我的代码的某个部分进行异常中断,而不是另一个,你知道吗?我可以在我的代码中写入一个参数(或其他)来告诉调试器不要这段代码的异常中断?

我调试的例外是具有相同类型的API'例外,我无法按类型过滤它们。

THX

ps:请注意我知道“Debug / Exception”,但这在我的情况下是无用的,因为我不想过滤某种类型的异常,只在代码的一部分中过滤它们。

示例:

#region don't want to break at exception
Try
{
  //I don't want the debugger to break here
  ApiMethodThatThrowException();
}
Catch(Exception){}
#endregion
#region want to break at exception
Try
{
  //I want the debugger to break here
  ApiMethodThatThrowException();
}
Catch(Exception){}
#endregion

3 个答案:

答案 0 :(得分:3)

除了@ abelenky的回答之外,我还要注意,某些Exceptions Visual Studio不允许您禁用(C++ ExceptionsGPU Memory Access Exceptions等)。然后,您必须使用System.Diagnostics属性来绕过调试器中的这些Exceptions

DebuggerHiddenAttributeDebuggerStepThroughAttribute是可用于告诉调试器跳过某些代码段的两个属性。

public string ConnectionString{
    [DebuggerStepThroughAttribute()]
    get { 
        // Implementation here; 
    }
}

以上示例取自: Using Attributes to Improve the Quality..

[DebuggerHiddenAttribute]
static void Main(string[] args) {
    // Implementation here;
}

答案 1 :(得分:1)

在Visual Studio菜单中,转到:

调试/例外......

在该对话框中,您可以选择调试器何时应针对每种异常进行分解 您可以选择在首次引发异常时或在未处理异常时它是否应该中断 您还可以添加新类型的异常来打破(或不打破)。

an article 包含更多详情

答案 2 :(得分:0)

从错误发生的位置开始,请务必使用trycatch运算符。

无论您的代码是什么,您只需执行以下操作:

try {
  // Code here
} catch(Exception e) {
}

这将阻止Visual Studio在进程中间弹出错误。