Visual Studio打破时不应该......任何人都知道为什么?

时间:2016-11-04 04:19:59

标签: c# visual-studio

一点背景。我为各种平台编写了许多数据转换应用程序,并且不习惯使用断点,异常处理等。

我有一系列转换类型方法,它们将采用对象输入(通常直接从sqldatareader 中使用)并将其转换为特定类型输出,如果无法执行则返回默认值直接转换。这是一个例子:

    public int? GetNullInt(object obj)
    {
        try
        {
            int blah = Convert.ToInt32(obj);
            if (blah == 0)
                return null;
            else
                return blah;
        }
        catch (Exception ex)
        {
            return null;
        }
    }

在这种情况下,如果对象不是int或者是0,我想返回null。

现在..问题是,即使这个代码被包装在try / catch中,由于某种原因,在这个单一的应用程序(Windows窗体,C#,.NET 4.5.2)中,Visual Studio在输入时会中断string不是预期的格式。休息问我是否要打破这种类型的异常(复选框未选中),但无论我设置什么设置,它都会一直打破,即使我正在捕获异常(可以在catch中设置断点并“继续“它,所以我知道try / catch正在运行)。我有“重置为默认”VS中的异常设置,仍然没有乐趣。

现在我知道我可以稍微改变这个方法来使用int.TryParse(我现在要这样做),但这并没有解决为什么VS首先破坏的根本问题,因为这不是一个未处理的例外。

有什么想法吗?

(这是休息的截图)

enter image description here

Photo of the break happening at runtime

2 个答案:

答案 0 :(得分:3)

在visual studio中,您有一个名为Exception settings的新窗口。 按Ctrl + Alt + E后会出现此窗口。

在此窗口中,您可以设置异常处理。

您的代码在我的Visual Studio Desktop For Express 2015中运行良好。

您只需取消选中此窗口中的所有内容即可。 请参考图片。

enter image description here

您可以参考下面的帖子,这与您想要的完全相同。

Visual Studio 2015 break on unhandled exceptions not working

答案 1 :(得分:0)

从截图中看,您没有" Just My Code"在调试器设置中启用

enter image description here

如果未启用该设置,则无法使用"仅捕获未处理的异常"视觉工作室的特色。