溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

關(guān)于Java異常最常見的八大問題

發(fā)布時間:2020-08-11 13:00:20 來源:ITPUB博客 閱讀:169 作者:03ngnntds 欄目:編程語言

1.異常管理的最佳做法

如果可以正確處理異常,則應(yīng)該被捕獲,否則應(yīng)該拋出異常。

2.為什么try中定義的變量不能用于catch或finally?

try {File file = new File(“path”);FileInputStream fis = new FileInputStream(file);String s = “inside”;} catch (FileNotFoundException e) {e.printStackTrace();System.out.println(s);}

原因是你不知道在try塊中哪里會拋出異常。在聲明對象之前拋出異常是很有可能的。對于這個特定的例子,這是真的。

3.為什么Double.parseDouble(null)和Integer.parseInt(null)會拋出不同的異常?

他們實際上拋出不同的例外 這是JDK的問題。它們由不同的開發(fā)人員開發(fā),所以不值得太多思考。

Integer.parseInt(null); // throws java.lang.NumberFormatException: nullDouble.parseDouble(null); // throws java.lang.NullPointerException

4.在Java中常用的運行時異常

這只是其中的一部分。

IllegalArgumentException

ArrayIndexOutOfBoundsException

當(dāng)條件不滿足時,它們可用于if語句中,如下所示:

if (obj == null) { throw new IllegalArgumentException(“obj can not be null”);

5.我們可以在同一個catch子句中捕獲多個異常嗎?

答案是肯定的。只要這些異常類可以追溯到類繼承層次結(jié)構(gòu)中的同一個超類,就可以只使用該超類。

6.構(gòu)造函數(shù)可以在java中引發(fā)異常嗎?

答案是肯定的。構(gòu)造函數(shù)是一種特殊的方法。這是一個代碼示例。

7.在最后條款中拋出異常

執(zhí)行以下操作是合法的:

public static void main(String[] args) {File file1 = new File(“path2”);File file2 = new File(“path3”);try {FileInputStream fis = new FileInputStream(file1);} catch (FileNotFoundException e) {e.printStackTrace();} finally {try {FileInputStream fis = new FileInputStream(file2);} catch (FileNotFoundException e) {e.printStackTrace();}}}

但為了獲得更好的代碼可讀性,您應(yīng)該將嵌入式try-catch塊作為新方法進行包裝,然后將方法調(diào)用放在finally子句中。

8.為什么開發(fā)人員默默地使用異常?

有很多的時間代碼段會發(fā)生如下情況。如果正確處理異常非常重要,為什么開發(fā)人員仍然這樣做?

try { …} catch(Exception e) { e.printStackTrace();}

忽略是很容易的。頻繁出現(xiàn)并不意味著正確。

文章來源:搜索引擎大全http://www.iis7.com/b/ssyqdq/


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI