2013-07-14 58 views
1

FileException異常被IOException覆蓋時捕獲FileNotFound和IOException的目的是什麼?爲什麼在IOException覆蓋時使用FileNotFoundException

例子:

try { 
    pref.load(new FileInputStream(file.getAbsolutePath())); 
} catch (FileNotFoundException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

,而不是:

try { 
    pref.load(new FileInputStream(file.getAbsolutePath())); 
} catch (FileNotFoundException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

難道僅僅是使不同的代碼,如果一個FileNotFoundException異常被拋出來執行?還是有其他原因?

編輯:什麼是IOException可能引發什麼幾個例子? (除了FileNotFoundException)

+2

*「是否只是在拋出FileNotFoundException時啓用不同的代碼?」*** ***是!!! *** – johnchen902

回答

5

它允許你專門處理這種情況。也許你的應用程序需要做一些特定的事情時找不到文件。比如通知用戶沒有找到文件,而不是一般的錯誤。

所以基本上,是的,它允許在引發FileNotFoundException時專門執行不同的代碼。

0

它必須這樣做,因爲您將任務分配給特定的FileNotFound異常錯誤。 如果您以IOException的身份執行操作,則用戶可能無法獲得正確的信息。所以用戶可以通過單獨的方式瞭解代碼中究竟發生了什麼。

相關問題