您好,登錄后才能下訂單哦!
1.異常管理的最佳做法
如果可以正確處理異常,則應該被捕獲,否則應該拋出異常。
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的問題。它們由不同的開發人員開發,所以不值得太多思考。
Integer.parseInt(null); // throws java.lang.NumberFormatException: nullDouble.parseDouble(null); // throws java.lang.NullPointerException
4.在Java中常用的運行時異常
這只是其中的一部分。
IllegalArgumentException
ArrayIndexOutOfBoundsException
當條件不滿足時,它們可用于if語句中,如下所示:
if (obj == null) { throw new IllegalArgumentException(“obj can not be null”);
5.我們可以在同一個catch子句中捕獲多個異常嗎?
答案是肯定的。只要這些異常類可以追溯到類繼承層次結構中的同一個超類,就可以只使用該超類。
6.構造函數可以在java中引發異常嗎?
答案是肯定的。構造函數是一種特殊的方法。這是一個代碼示例。
7.在最后條款中拋出異常
執行以下操作是合法的:
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();}}}
但為了獲得更好的代碼可讀性,您應該將嵌入式try-catch塊作為新方法進行包裝,然后將方法調用放在finally子句中。
8.為什么開發人員默默地使用異常?
有很多的時間代碼段會發生如下情況。如果正確處理異常非常重要,為什么開發人員仍然這樣做?
try { …} catch(Exception e) { e.printStackTrace();}
忽略是很容易的。頻繁出現并不意味著正確。
文章來源:搜索引擎大全http://www.iis7.com/b/ssyqdq/
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。