在属性中使用try-catch

本文关键字:try-catch 属性 | 更新日期: 2023-09-27 18:17:51

下面的代码不能正常工作:

get
{
    try
    {
        foreach (object o in NullObjectList)
        {
            if (o.Property)
            {
                return true;
            }
        }
    }
    catch (NullReferenceException) {}
    return false;
}

为什么Visual Studio暂停和打破当它试图迭代NullObjectList?通常它只是捕获异常然后继续。它的独特之处是什么?

编辑:另一种解决方案是检查对象是否为null,但我仍然很好奇为什么try-catch在这种情况下不起作用。

在属性中使用try-catch

对我来说,它的工作原理与预期一样,当异常被引发并且异常被正确捕获时,Visual Studio不会中断。你确定你没有"公共语言运行时异常"设置在异常对话框中抛出?我在Visual Studio 2008和2012中尝试过。