-
09-09-2019 - |
题
时,能够抑制用于特定代码行?
在Visual Studio中第一次机会supressions(C#调试器)我想用第一次机会异常在调试器,但也有大约50第一次的机会例外,我需要去通过每一个调试会话之前,我对有趣的代码。
目前,我关闭了第一次机会异常,然后手动打开它们,但这是一个麻烦和时间片。
解决方案
DebuggerNonUserCodeAttribute类
作为.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;
}
}
文章显示VS可能是有用的项目相关的选项。点击
其他提示
这是因为你错误使用异常发生。获得50你到了“有趣的代码”之前是不是一个好兆头。有一个在Visual Studio中跳过它们在一些代码没有办法,因为它的设计没有鼓励你在做什么。
这是说,我该做什么将关闭在调试器捕捉第一次机会异常,明确try/catch
你想捕获异常,并把在当你抓到它Debugger.Break()
。
不隶属于 StackOverflow