使Visual Studio忽略异常?

时间:2010-09-10 21:43:21

标签: c# .net visual-studio silverlight

我正在使用异常来验证Silverlight 4中的控件输入。当我抛出无效的输入异常时,VS 2010会显示弹出窗口并停止程序。我忽略了这一点并恢复了程序,一切都继续正常(因为异常用于表示验证错误。)有没有办法将一个异常标记为忽略?

我正在关注此tutorial

8 个答案:

答案 0 :(得分:16)

调试 - >例外 - >取消选中

答案 1 :(得分:5)

菜单,调试器,例外......

在该对话框中,您可以删除'thrown'列中的复选标记,以查找整个命名空间的一个例外。你可以添加自己的。 etc.etc。

答案 2 :(得分:3)

如果我也选择

,我可以[System.Diagnostics.DebuggerHidden()]工作

调试>选项>调试>一般>启用我的代码(仅限管理)。

我经常访问Excel对象模型,我真的希望能够运行调试器并捕获所有异常,因为我的代码通常不会异常。但是,Excel API会引发很多例外。

// [System.Diagnostics.DebuggerNonUserCode()]  works too
[System.Diagnostics.DebuggerHidden()]
private static Excel.Range TrySpecialCells(Excel.Worksheet sheet, Excel.XlCellType cellType)
{
    try
    {
        return sheet.Cells.SpecialCells(cellType);
    }
    catch (TargetInvocationException)
    {
        return null;
    }
    catch (COMException)
    {
        return null;
    }
}

答案 3 :(得分:3)

我尝试制作一个通用的解决方案,我可以放任何调用,如果我得到异常,我希望调试器不要停止,但我没有让它工作。

任何想法都表示赞赏。但显而易见的解决方案是VS2010调试器支持标志DoNotBreakIfException: - )

我的想法是能够替换像

这样的代码
srng = TrySpecialCells(sheet, cellType);

通过

srng = ExcelTry(() => sheet.Cells.SpecialCells(cellType));

其中ExcelTry是

[System.Diagnostics.DebuggerNonUserCode()] 
[System.Diagnostics.DebuggerHidden()]
private static T ExcelTry<T>(Func<T> call)
{
    try
    {
        return call();
    }
    catch (TargetInvocationException)
    {
        return default(T);
    }
    catch (COMException)
    {
        return default(T);
    }
}

答案 4 :(得分:1)

你可以通过在块

中包围来禁用一些throw块
#if !DEBUG
       throw new Exception();
/// this code will be excepted in the debug mode but will be run in the release 
#endif

答案 5 :(得分:1)

将其置于抛出异常的属性上方似乎应该可以正常工作,但显然不会: [System.Diagnostics.DebuggerHidden()]

    private String name;

    [System.Diagnostics.DebuggerHidden()]
    public String Name
    {
        get
        {
            return name;
        }
        set
        {
            if (String.IsNullOrWhiteSpace(value))
            {
                throw new ArgumentException("Please enter a name.");
            }
        }
    }

答案 6 :(得分:1)

在调试模式下运行Visual Studio时,底部工具栏上有“异常设置”。单击它后,所有类型例外。取消选中所需的异常。对于您为此项目创建的“自定义”异常,它们位于“公共语言运行时异常”的最底部。希望对您有所帮助。

答案 7 :(得分:0)

从Visual Studio 2015开始,有一个Exception Settings窗口。

调试&gt; Windows&gt;例外设置