时,能够抑制用于特定代码行?

在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()

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top