首頁 > Java > java教程 > 主體

java怎麼拋出異常

(*-*)浩
發布: 2020-09-17 16:22:03
原創
27885 人瀏覽過

Java中想要拋出異常那需要用到Java的兩個關鍵字,都是用於異常處理機制。

java怎麼拋出異常

一個方法不處理這個例外,而是呼叫層次向上傳遞,誰呼叫這個方法,這個例外就由誰來處理。這就是拋出異常。

throw : 將產生的異常拋出(強調的是動作),拋出的既可以是異常的引用,也可以是異常物件。 (位置: 方法體內)

throws : 如果一個方法可能會出現異常,但沒有能力處理這種異常,可以在方法宣告處用throws子句來宣告拋出異常。用它修飾的方法向呼叫者表明該方法可能會拋出異常(可以是一種類型,也可以是多種類型,用逗號隔開)(位置: 寫在方法名或方法名列表之後,在方法體之前。)

注意: 呼叫可能會拋出異常的方法,必須添加try-catch程式碼區塊嘗試去捕獲異常或添加throws 聲明來將異常拋出給更上一層的呼叫者進行處理,這裡需要注意一個細節:新的異常包含原始異常的所有信息,根據這個我們可以去追溯最初異常發生的位置,

簡單使用:

// 定义一个方法,抛出 数组越界和算术异常(多个异常 用 "," 隔开)
public void Test1(int x) throws ArrayIndexOutOfBoundsException,ArithmeticException{
	System.out.println(x);
	if(x == 0){
		System.out.println("没有异常");
		return;
	}
	//数据越界异常
	else if (x == 1){
		int[] a = new int[3];
		a[3] = 5;
	}
	//算术异常
	else if (x == 2){
		int i = 0;
		int j = 5/0;
	}
}
登入後複製

在main方法中呼叫:

public static void main(String[] args) {
        //创建对象
        ExceptionInital object = new ExceptionInital();
        // 调用会抛出异常的方法,用try-catch块
        try{
            object.Test1(0);
        }catch(Exception e){
            System.out.println(e);
        }
        // 数组越界异常
        try{
            object.Test1(1);
        }catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("数组越界异常:"+e);
        }

        // 算术异常
        try{
            object.Test1(2);
        }catch(ArithmeticException e){
            System.out.println("算术异常:"+e);
        }

        //使用 throw 抛出异常(可以抛出异常对象,也可以抛出异常对象的引用)
        try{
            ArrayIndexOutOfBoundsException  exception = new ArrayIndexOutOfBoundsException();
            throw exception;//new ArrayIndexOutOfBoundsException();
        }catch(ArrayIndexOutOfBoundsException e){
            System.out.println("thorw抛出异常:"+e);
        }
    }
登入後複製

#運行結果:

java怎麼拋出異常

##總結下throw 和throws 關鍵字的區別

1、寫法上: throw 在方法體內使用,throws 函數名後或參數列表後方法體前 

# 2.意義: throw 強調動作,而throws 表示一種傾向、可能但不一定實際發生 

3、throws 後面跟的是異常類,可以一個,可以多個,多個用逗號隔開。 throw 後面接著的是異常對象,或是異常對象的參考。 

4、throws 使用者拋出異常,當在目前方法中拋出異常後,當前方法執行結束(throws 後,如果有finally語句的話,執行到finally語句後再結束。)。可以理解成return一樣。

相關學習推薦:

java基礎教學

以上是java怎麼拋出異常的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板