我在尝试使用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;
}
答案 0 :(得分:2)
我的猜测是它在最初抛出时会进入调试器中的FileNotFoundException
,但它会被catch块正确捕获。您可以更改异常的调试器设置 - 或者只是在调试器外部运行它。
答案 1 :(得分:0)
你拥有的捕获将捕获所有异常,但是根据你如何配置Visual Studio,它可能仍然停在引发异常的行上,以便在处理程序启动之前为你提供调试的机会。
转到Debug|Exceptions
菜单进行控制。