Visual Studio:告诉部分代码在调试时不要出现异常中断

本文关键字:中断 异常 调试 Studio 诉部 代码 Visual | 更新日期: 2023-09-27 18:33:33

我正在调试代码中的异常,我的调试器设置为在出现异常时中断。

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

我调试的异常是相同类型的 API 异常,我无法按类型过滤它们。

感谢

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

例:

#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

Visual Studio:告诉部分代码在调试时不要出现异常中断

除了@abelenky的回答之外,我还想指出,Visual Studio不允许你禁用某些ExceptionsC++ ExceptionsGPU Memory Access Exceptions等)。然后,您必须查看如何使用 System.Diagnostics 属性绕过调试器中的这些Exceptions

DebuggerHiddenAttribute 和 DebuggerStepThroughAttribute 是两个属性,可用于告诉调试器跳过某些代码段。

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

上面的例子取自:使用属性来提高质量。

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

在 Visual Studio 菜单中,转到:

调试/异常...

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

这是一篇包含更多详细信息的文章

从错误发生的地方,确保使用trycatch运算符。

无论您损坏的代码在哪里,您都可以简单地执行以下操作:

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

这将防止Visual Studio在过程中弹出错误。