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);
}
}
登錄后復制
運行結果 :
總結下 throw 和throws 關鍵字的區別
1、寫法上 : throw 在方法體內使用,throws 函數名后或者參數列表后方法體前
2、意義 : throw 強調動作,而throws 表示一種傾向、可能但不一定實際發生
3、throws 后面跟的是異常類,可以一個,可以多個,多個用逗號隔開。throw 后跟的是異常對象,或者異常對象的引用。
4、throws 用戶拋出異常,當在當前方法中拋出異常后,當前方法執行結束(throws 后,如果有finally語句的話,會執行到finally語句后再結束。)??梢岳斫獬蓃eturn一樣。
以上就是java怎么拋出異常的詳細內容,更多請關注風君子博客其它相關文章!
總結
以上是生活随笔為你收集整理的java怎么抛出异常的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 理解Prefix.pch文件
- 下一篇: Delphi-IOCP学习笔记三====