您好,登錄后才能下訂單哦!
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/
免責(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)容。