1. 程式人生 > >throw跟throws關鍵字

throw跟throws關鍵字

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) ;
        }
    }
};