異常處理機制(一)之throw與throws的區別

小亮愛編碼發表於2023-11-13

throw 和 throws 都與異常處理有關,但它們的用法和含義不同。

兩者的區別

throw 在方法體內使用,throws 在方法宣告上使用。

throw 後面接的是異常物件,只能接一個。throws 後面接的是異常型別,可以接多個,多個異常型別用逗號隔開。

throw 是在方法中出現不正確情況時,手動來丟擲異常,結束方法的,執行了 throw 語句一定會出現異常。而 throws 是用來宣告當前方法有可能會出現某種異常的,如果出現了相應的異常,將由呼叫者來處理,宣告瞭異常不一定會出現異常。

throw 是一個關鍵字,用於丟擲一個異常物件,示例如下:

throw new Exception("丟擲一個異常");

throws 是一個關鍵字,用於宣告方法可能會丟擲的異常型別,示例如下:

public void method() throws Exception {
    // 方法體
}

throws 是用在某個方法的方法宣告上的,表示當前方法如果丟擲了某些異常,將由呼叫者來進行異常處理。這種方式也可以讓呼叫者知曉該對哪些異常進行處理。throws 宣告的異常不一定會出現,只是一種可能。

//呼叫者處理異常,有兩種處理方式
    //第一種就是再次丟擲
    //第二種用try和catch環繞
    public static void main(String[] args) throws Exception{
        try {
            Demo1();
        } catch (ArithmeticException e) {
            System.out.println(e.getMessage());
        }
    }

//    定義方法時,throws宣告該方法可能丟擲的異常型別
//    Exception包含所有異常型別
    public static void Demo1() throws ArithmeticException{
        int i=1/0;
        System.out.println(i);
    }

throw 是用在某個方法的方法體內的,當我們認定某種情況不合理時,就可以建立異常物件,封裝好異常資訊,然後透過 throw 來丟擲異常並終止該方法。

    public static void Demo2(int age){
        if(age<0||age>100){
            //throw用在Demo2(int age)方法的方法體內
            //括號裡面提示出的什麼問題
            throw new ArithmeticException("年齡不合法");
        }
    }

相關文章