throw跟throws關鍵字
阿新 • • 發佈:2018-12-04
throws關鍵字
定義一個方法的時候可以使用throws關鍵字宣告。使用throws關鍵字宣告的方法表示此方法不處理異常,而交給方法呼叫處進行處理。
throws關鍵字格式:
public 返回值型別 方法名稱(引數列表,,,)throws 異常類{};
假設定義一個除法,對於除法操作可能出現異常,可能不會。所以對於這種方法最好將它使用throws關鍵字宣告,一旦出現異常,
則應該交給呼叫處處理。
class Math{ public int div(int i,int j) throws Exception{ // 定義除法操作,如果有異常,則交給被呼叫處處理 int temp = i / j ; // 計算,但是此處有可能出現異常 return temp ; } }; public class ThrowsDemo01{ public static void main(String args[]){ Math m = new Math() ; // 例項化Math類物件 try{ System.out.println("除法操作:" + m.div(10,2)) ; }catch(Exception e){ e.printStackTrace() ; // 列印異常 } } };
因為div使用了throws關鍵字宣告,所以呼叫此方法的時候,方法必須進行異常處理。通過try...catch;
如果在主方法的宣告也使用了throws關鍵字呢,那麼是不是意味著主方法也可以不處理異常。
class Math{ public int div(int i,int j) throws Exception{ // 定義除法操作,如果有異常,則交給被呼叫處處理 int temp = i / j ; // 計算,但是此處有可能出現異常 return temp ; } }; public class ThrowsDemo02{ // 在主方法中的所有異常都可以不使用try...catch進行處理 public static void main(String args[]) throws Exception{ Math m = new Math() ; // 例項化Math類物件 System.out.println("除法操作:" + m.div(10,0)) ; } };
執行結果:
Exception in thread "main" java.lang.ArithmeticException: / by zero
at methoud.Math.div(ThisDemo06.java:4)
at methoud.ThisDemo06.main(ThisDemo06.java:12)
在本程式中,主方法不處理任何異常,而交給JAVA中最大頭JVM,所以如果在主方法使用了throws關鍵字,則表示一切異常
交給JVM進行處理。預設處理方式也是JVM完成。
throw關鍵字
throw關機字作用是丟擲一個異常,丟擲的時候是丟擲的是一個異常類的例項化物件,
在異常處理中,try語句要捕獲的是一個異常物件,那麼此異常物件也可以自己丟擲。
package methoud; public class ThisDemo06{ public static void main(String args[]){ try{ throw new Exception("自己拋著玩的。") ; // 丟擲異常的例項化物件 }catch(Exception e){ System.out.println(e) ; } } };