2011-09-14 102 views
0

我在嘗試使用try-catch塊執行函數時遇到FileNotFoundException。我嘗試過捕獲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; 
} 
+1

你有沒有考慮檢查文件是否真的存在? – dtb

+0

你在路徑變量中傳遞了什麼? –

+2

首先:仔細檢查你的路徑變量。第二:使用Path.Combine方法。 – Dariusz

回答

2

我的猜測是,它闖入FileNotFoundException在調試器時,它的最初拋出,但它會被catch塊被正確捕獲。您可以更改異常的調試器設置 - 或者只是在調試器之外運行它。

0

你將捕獲所有異常,但根據已配置的Visual Studio如何,它仍可能會停止上線提高例外,給你在處理踢前的調試機會的捕捉。

轉到Debug|Exceptions菜單來控制這一點。

相關問題