溫馨提示×

溫馨提示×

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

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

Java異常類型及處理方法是怎樣的

發(fā)布時(shí)間:2021-09-26 09:46:04 來源:億速云 閱讀:177 作者:柒染 欄目:開發(fā)技術(shù)

Java異常類型及處理方法是怎樣的,針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

異常結(jié)構(gòu)為:

Throwable 為頂級父類

  • 子類Error為嚴(yán)重報(bào)錯(cuò) ,

  • 子類Exception就是我們所說的異常了

一、異常處理的關(guān)鍵字

java中處理異常的有五個(gè)關(guān)鍵字: try、catch finally 、 throw throws

throw拋出異常 , thorws聲明異常 , 捕獲異常 try_catch

1、throw

public class SegmentFault {
    public static void main(String[] args) {

        /**
         *  throw 拋出異常
         *    格式 - throw new 異常類名(參數(shù));
         * */

        // 創(chuàng)建一個(gè)數(shù)組
        int [] arr = { 2, 4, 56 ,5};
        // 根據(jù)索引找到對應(yīng)的元素
        int index = 4;
        int element = getElement(arr,index);
        System.out.println(element);
        System.out.println("owo"); // 運(yùn)行錯(cuò)誤 無法繼續(xù)
    }
        /** throw 拋出異常 提醒你必須處理  */
    public static int getElement(int [] arr, int index){
        // 判斷數(shù)組索引是否越界
        if (index < 0  || index > arr.length -1){
            /**
             * 條件滿足越界 當(dāng)執(zhí)行到throw拋出異常后就無法運(yùn)行,結(jié)束方法并且提示
             * */
            throw new ArrayIndexOutOfBoundsException("數(shù)組下標(biāo)越界異常");
        }
        int element = arr[index];
        return element;
    }
}

異常結(jié)果為:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 數(shù)組下標(biāo)越界異常

2、throws

public class SegmentFault{
    public static void main(String [] args){
    
        read("a.txt");
        
    }
      public static void read(String path) throws FileNotFoundException, IOException {
        if (!path.equals("a.txt")){  // 如果沒有a.txt
            // 如果不是 a.txt 該文件不存在 是一個(gè)錯(cuò)誤 也就是異常 throw
            throw new FileNotFoundException("文件不存在");
        }
        if (!path.equals("b.txt")){
            throw new IOException("文件不存在");
        }
    }
    
}

異常結(jié)果為:

Exception in thread "main" java.io.IOException: 文件不存在

try、catchfinally + Throwable中的常用方法。

Throwable常用方法如下:

  • printStackTrace() : *打印異常詳細(xì)信息。

  • getMessage() : 獲取異常原因。

  • toString(): 獲取異常類型及描述信息。

public class Demo03 {
    public static void main(String[] args) {

        /**
         *  try- catch  捕獲異常
         * */


        // 可能會(huì)生成的異常
        try {     // 捕獲或者聲明
            read("b.txt");
        } catch (FileNotFoundException e) {   // 使用某種捕獲,實(shí)現(xiàn)對異常的處理
            System.out.println(e);
            /**
             *  Throwable中的查看方法
             *  getMessage 獲取異常信息  提示給用戶看的
             *  toString   獲取異常的類型和異常描述(不用)
             *  printStackTrace
             * */
            
            
            System.out.println("Throwable常用方法測試");
            System.out.println(e.getMessage()); // 文件不存在
            System.out.println(e.toString());
            e.printStackTrace();
            
            

        } finally {
            System.out.println("不管程序怎樣,這里都會(huì)被執(zhí)行");
        }

        System.out.println("over");

    }

    public static void read(String path) throws FileNotFoundException {
        if (!path.equals("a.txt")) {
            throw new FileNotFoundException("文件不存在");
        }
    }
    
}

輸出結(jié)果為:

java.io.FileNotFoundException: 文件不存在
-----Throwable常用方法測試------
文件不存在
java.io.FileNotFoundException: 文件不存在
不管程序怎樣,這里都會(huì)被執(zhí)行

注意事項(xiàng) :try、 catch、 finally、都不可以單獨(dú)使用

關(guān)于Java異常類型及處理方法是怎樣的問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細(xì)節(jié)

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

AI