Java中throw和throws的區別


throw和throws都是異常處理的概念,其中throw用於在方法或程式碼塊中顯式丟擲異常,而throws用於在方法簽名中指示該方法可能丟擲列出的型別異常。

以下是throw和throws之間的一些重要區別。

序號關鍵點throwthrows
1定義throw是一個關鍵字,用於在程式中函式或程式碼塊內顯式丟擲異常。throws是用於方法簽名中的關鍵字,用於宣告函式在執行程式碼時可能丟擲的異常。
2內部實現在內部,throw的實現一次只允許丟擲一個異常,即不能使用throw關鍵字丟擲多個異常。另一方面,可以使用throws關鍵字宣告多個可能由使用throws關鍵字的函式丟擲的異常。
3異常型別使用throw關鍵字,只能傳播未檢查異常,即不能使用throw傳播檢查異常。另一方面,使用throws關鍵字可以宣告檢查異常和未檢查異常,對於傳播檢查異常,必須使用throws關鍵字後跟具體的異常類名。
4語法從語法上講,throw關鍵字後跟例項變數。另一方面,從語法上講,throws關鍵字後跟異常類名。
5宣告為了使用throw關鍵字,我們應該知道throw關鍵字是在方法內部使用的。另一方面,throws關鍵字與方法簽名一起使用。

throw與throws示例

JavaTester.java

 線上演示

public class JavaTester{
   public void checkAge(int age){
      if(age<18)
         throw new ArithmeticException("Not Eligible for voting");
      else
         System.out.println("Eligible for voting");
   }
   public static void main(String args[]){
      JavaTester obj = new JavaTester();
      obj.checkAge(13);
      System.out.println("End Of Program");
   }
}

輸出

Exception in thread "main" java.lang.ArithmeticException:
Not Eligible for voting
at JavaTester.checkAge(JavaTester.java:4)
at JavaTester.main(JavaTester.java:10)

示例

JavaTester.java

 線上演示

public class JavaTester{
   public int division(int a, int b) throws ArithmeticException{
      int t = a/b;
      return t;
   }
   public static void main(String args[]){
      JavaTester obj = new JavaTester();
      try{
         System.out.println(obj.division(15,0));
      }
      catch(ArithmeticException e){
         System.out.println("You shouldn't divide number by zero");
      }
   }
}

輸出

You shouldn't divide number by zero

更新於:2019年9月18日

10K+ 瀏覽量

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.