各位小夥伴們大家好,在之前的文章中小編介紹了異常的產生過程Java之異常產生過程解析,這次小編要介紹的是throw關鍵字,這個關鍵字可以在指定的方法中拋出指定的異常。
使用格式:throw new xxxException("異常產生的原因");
使用這個關鍵字,大家要注意以下幾點:
throw關鍵字必須寫在方法的內部。throw關鍵字後邊new的對象必須是Exception或者Exception的子類對象。throw關鍵字拋出指定異常對象,我們就必須處理這個異常對象。
如果,throw關鍵字後邊創建的是RuntimeException或者RuntimeException的子類對象,我們可以不處理,默認交給JVM處理(列印異常對象,中斷程序)。
如果,throw關鍵字後邊創建的是編譯異常(寫代碼的時候報錯),我們就必須處理這個異常,要麼用throws,要麼用try...catch。
代碼如下:
public class Demo07Throw {
public static void main(String args[]){
String[] arr=null;
String e=getElement(arr,1);
System.out.println(e);
}
/*定義一個方法,獲取數組指定索引處的元素
參數:
String[] arr
int index
首先要對傳遞過來的參數進行合法性效驗,如果參數不合法,必須使用拋出異常的方式
,告知方法的調用者,傳遞的參數有問題*/
public static String getElement(String[] arr, int index){
/*對傳遞過來的參數數組進行合法性效驗
如果數組arr的值是null
那麼我們就拋出空指針異常,告知方法調用者「傳遞的數組值是null」*/
if(arr==null){
throw new NullPointerException("傳遞的數組值是null");
}
String ele=arr[index];
return ele;
}
}
運行結果:Exception in thread "main" java.lang.NullPointerException: 傳遞的數組值是null。
NullPointerException是運行期異常。
對傳遞過來的參數index合法性也可以進行效驗,代碼如下:
public class Demo08Throw {
public static void main(String args[]){
int[] arr=new int[]{1,2,3};
int e=getElement(arr,5);
System.out.println(e);
}
public static int getElement(int[] arr,int index){
/*對傳遞過來的參數index合法性的效驗,
如果超出了數組的範圍,就告知方法的調用者「傳遞的索引超出了數組的使用範圍」*/
if(index<0||index>arr.length-1){
throw new ArrayIndexOutOfBoundsException("傳遞的索引超出了數組的使用範圍");
}
int ele=arr[index];
return ele;
}
}
運行結果:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 傳遞的索引超出了數組的使用範圍(數組索引越界)。這也是運行期異常,不需要處理。
關於throw這關鍵字可以在指點的方法中拋出指定的異常,不過對於throw關鍵字來說,運行期的異常是不會處理的,只會拋出。小編就先說到這裡,希望這篇文章可以幫到大家,也歡迎各位小夥伴補充和糾錯。
圖片來自網絡,如有侵權,請聯繫作者刪除