我正在调试代码中的异常,而我的调试器在出现时就会中断。
我希望我的调试会话能够在我的代码的某个部分进行异常中断,而不是另一个,你知道吗?我可以在我的代码中写入一个参数(或其他)来告诉调试器不要这段代码的异常中断?
我调试的例外是具有相同类型的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
答案 0 :(得分:3)
除了@ abelenky的回答之外,我还要注意,某些Exceptions
Visual Studio不允许您禁用(C++ Exceptions
,GPU Memory Access Exceptions
等)。然后,您必须使用System.Diagnostics
属性来绕过调试器中的这些Exceptions
。
DebuggerHiddenAttribute和DebuggerStepThroughAttribute是可用于告诉调试器跳过某些代码段的两个属性。
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)
从错误发生的位置开始,请务必使用try
和catch
运算符。
无论您的代码是什么,您只需执行以下操作:
try {
// Code here
} catch(Exception e) {
}
这将阻止Visual Studio在进程中间弹出错误。