Kan*_* Su 24 c# debugging exception first-chance-exception visual-studio-2008
是否有可能在Visual Studio(C#调试器)中抑制特定代码行的第一次机会抑制?
我想在调试器中使用第一次机会异常,但在我得到有趣的代码之前,我需要经历每个调试会话的大约50个第一次机会异常.
目前,我关闭了第一次机会异常,然后手动打开它们,但这是一个麻烦和时间下沉.
Joh*_*n K 28
从.NET 2.0开始,如果使用[ DebuggerNonUserCode ]属性标记方法,则调试器将跳过其中的第一次机会异常.
从MSDN链接引用(重点是我的):
不属于用户专门创建的代码的成员可能会使调试体验复杂化. 此属性禁止在调试器窗口中显示这些附属类型和成员,并自动逐步执行,而不是逐步执行设计器提供的代码.
除了与此属性关联的调试之外,没有运行时行为.
但是,如果您只有一个方法,某些行旨在包含在Visual Studio的第一次机会异常处理机制中,并且要排除其他行,则可能没有这种粒度级别的解决方案.您始终可以将大型方法重构为多个方法,并在选择的方法上使用该属性.
附加信息...
本文的用法示例
using System.Diagnostics;
using XL = Microsoft.Office.Interop.Excel;
public static class WorkbookExtensions
{
[DebuggerNonUserCode]
public static bool TryGetWorksheet(this XL.Workbook wb, string worksheetName, out XL.Worksheet retrievedWorksheet)
{
bool exists = false;
retrievedWorksheet = null;
try
{
retrievedWorksheet = GetWorksheet(wb, worksheetName);
exists = retrievedWorksheet != null;
}
catch(COMException)
{
exists = false;
}
return exists;
}
[DebuggerNonUserCode]
public static XL.Worksheet GetWorksheet(this XL.Workbook wb, string worksheetName)
{
return wb.Worksheets.get_Item(worksheetName) as XL.Worksheet;
}
}
Run Code Online (Sandbox Code Playgroud)
本文显示了可能有用的相关VS项目选项.
