中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Java異常的常見面試題和答案

發布時間:2020-06-08 14:43:17 來源:億速云 閱讀:156 作者:Leah 欄目:編程語言

這篇文章給大家分享的是Java異常的常見面試題和答案。小編覺得挺實用的,因此分享給大家學習。如下資料是關于設置環境變量的內容。

1.已檢查與未檢查

簡而言之,必須在方法中顯式捕獲已檢查的異常,或在方法的throws子句中聲明該異常。未檢查的異常是由無法解決的問題引起的,例如被零除,空指針等。檢查的異常特別重要,因為你希望使用API的其他開發人員知道如何處理異常。
例如,IOException是一個常用的已檢查異常,而RuntimeException是一個未檢查的異常。你可以在閱讀其余內容之前先檢查一下Java異常層次結構圖。

2.異常管理的最佳實踐

如果可以正確處理異常,則應將其捕獲,否則應將其引發。

3.為什么在try中定義的變量不能用于catch或final?

在以下代碼中,在try塊中聲明的字符串s不能在catch子句中使用。該代碼不通過編譯。

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

原因是你不知道在try塊中的哪個位置會引發異常。很有可能在聲明對象之前引發了異常。對于此特定示例,這是正確的。

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

他們實際上拋出了不同的異常。這是JDK的問題。它們是由不同的開發人員開發的,因此不值得過多思考。

Integer.parseInt(null); 
// throws java.lang.NumberFormatException: null
 
Double.parseDouble(null); 
// throws java.lang.NullPointerException
  1. Java中常用的運行時異常

這里只是其中一些。

IllegalArgumentException
ArrayIndexOutOfBoundsException

當不滿足條件時,可以在if語句中使用它們,如下所示:

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

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

答案是肯定的。只要這些異常類可以追溯到類繼承層次結構中的同一超類,就只能使用該超類。

7.構造函數可以在Java中引發異常嗎?

答案是肯定的。構造函數是一種特殊的方法。這是一個代碼示例。

8.在最后一個子句中引發異常

進行以下操作是合法的:

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子句中。

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 {
        methodThrowException();
    }
}

9.可以在finally塊中使用

是的,它可以。

10.為什么開發人員會默默使用異常?

發生了許多類似以下的時間代碼段。如果正確處理異常非常重要,為什么開發人員會繼續這樣做呢?

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

關于Java異常的常見面試題和答案就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

双牌县| 体育| 嘉禾县| 台州市| 邹平县| 龙口市| 卢氏县| 大名县| 车致| 双流县| 壶关县| 吉林市| 合山市| 长治市| 松溪县| 江孜县| 望都县| 年辖:市辖区| 宝兴县| 水富县| 耿马| 东丰县| 武川县| 河津市| 石景山区| 平湖市| 贵溪市| 平阳县| 奉贤区| 交城县| 永济市| 石城县| 凌云县| 依安县| 古丈县| 永修县| 饶河县| 吴川市| 杭锦旗| 莱芜市| 大荔县|