抛出FileNotFoundException但没有捕获

时间:2011-09-14 21:55:53

标签: c# filenotfoundexception

我在尝试使用try-catch块执行函数时收到FileNotFoundException。我试过捕获FileNotFoundException,但无济于事。谁能告诉我它为什么会这样做?

public static bool IsKeyValid(string path)
{
    bool rVal = false;

    try
    {
        Stream stream = File.Open(path + "\\data.bin", FileMode.Open);
        BinaryFormatter bf = new BinaryFormatter();

        ValidKey vk = (ValidKey)bf.Deserialize(stream);
        if (vk.SerialNumber != null)
            rVal = true;
        else
            rVal = false;

    }
    catch (Exception fnfe)
    {
            rVal = false;
    }
    return rVal;
}

2 个答案:

答案 0 :(得分:2)

我的猜测是它在最初抛出时会进入调试器中的FileNotFoundException,但它会被catch块正确捕获。您可以更改异常的调试器设置 - 或者只是在调试器外部运行它。

答案 1 :(得分:0)

你拥有的捕获将捕获所有异常,但是根据你如何配置Visual Studio,它可能仍然停在引发异常的行上,以便在处理程序启动之前为你提供调试的机会。

转到Debug|Exceptions菜单进行控制。