Выдает FileNotFoundException но не ловит - PullRequest
0 голосов
/ 15 сентября 2011

Я получаю FileNotFoundException при попытке выполнить функцию с блоком try-catch. Я пытался поймать 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 ]

2 голосов
/ 15 сентября 2011

Я предполагаю, что он врывается в FileNotFoundException в отладчике, когда он первоначально генерируется, но что он будет правильно перехвачен блоком catch. Вы можете изменить настройки отладчика для исключений - или просто запустить его вне отладчика, конечно.

0 голосов
/ 15 сентября 2011

Пойманный вами улов поймает все исключения, но в зависимости от того, как у вас настроена Visual Studio, он все равно может остановиться на строке, вызывающей исключение, чтобы дать вам возможность отладки до того, как обработчик сработает.

Перейдите в меню Debug|Exceptions для управления этим.

...