- 我們可以在同一catch子句中捕獲多個異常嗎?
是的,只要這些異常類可以追溯到類繼承層次結構中的同一個超類,那麼只能使用該超類。
- java可以在構造器中拋出異常嗎?
是的,構造函數是一種特殊的方法。 這是一個代碼示例。
- 在finally塊裏拋出異常
這是可以通過編譯的。
public static void main(String[] args) {
File file1 = new File("path1");
File file2 = new File("path2");
try {
FileInputStream fis = new FileInputStream(file1);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
try {
FileInputStream fis = new FileInputStream(file2);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
但是要具有更好的代碼可讀性,你應該將try-catch塊作爲新方法進行包裝,然後將方法調用放在finally子句中。
public static void main(String[] args) {
File file1 = new File("path1");
File file2 = new File("path2");
try {
FileInputStream fis = new FileInputStream(file1);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
methodThrowException();
}
}
return可以在finally塊裏嗎?
可以。爲什麼開發者會默默地處理異常?
下面的代碼出線過很多次,如果正確處理異常非常重要,那麼爲什麼開發人員會繼續這樣寫代碼呢?
try {
...
} catch(Exception e) {
e.printStackTrace();
}
忽視是很容易的。頻繁出現並不意味着正確。
機翻水平,求輕噴
原地址:點這兒