2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁新聞動態正文

Java異常之throws關鍵字用法介紹

更新時間:2019-10-07 來源:throws關鍵字用法介紹 瀏覽量:

我們試想一下,如果去調用一個別人寫的方法時,是否能知道別人寫的方法是否會有異常呢?這是很難做出判斷的。針對這種情況,Java中允許在方法的后面使用throws關鍵字對外聲明該方法有可能發生的異常,這樣調用者在調用方法時,就明確地知道該方法有異常,并且必須在程序中對異常進行處理,否則編譯無法通過。

 

throws關鍵字聲明拋出異常的語法格式如下:

修飾符 返回值類型 方法名([參數1,參數2…])throws Exceptiontype1[,ExceptionType2…]{ }



1570431749588_java異常處理.jpg


 

從上述語法格式中可以看出,throws關鍵字需要寫在方法聲明的后面,throws后面需要聲明方法中發生異常的類型,通常將這種做法稱為方法聲明拋出一個異常。我們通過下面案例介紹。

例1:

 

public class Example1{
   public static void main(String [] args){
        int result=divide(4,2);     //調用 divide()方法
        System.out.println(result);  //下面的方法實現了兩個整數相除,并使用 throws關鍵字聲明拋出異常
   }
   public static int divide(int x ,int y) throws Exception{
        int result=x / y;  //定義一個變量 result記錄兩個數相除的結果
        return result;  //將結果返回
   }
}

 

運行結果:

D:\cn\itcast\chapter04>java Example1.java

Example1.java:3: 錯誤:未報告的異常錯誤Exception;必須對其進行捕獲或者聲明以便拋出

int result divide(4, 2);//調用 divide()方法

1個錯誤


在上面案例1中第3行代碼調用divide()方法時傳入的第二個參數為2,程序在運行時不會發生被0除的異常,但是由于定義divide()方法時聲明拋出了異常,調用者在調用divide()方法時就必須進行處理,否則就會發生編譯錯誤。下面案例1進行修改,在調用divide()方法時對其進行try…catch處理。例2:

 

public class Example2{
   public static void main(String [] args){
      try {
         int result= divide(4,2);    //調用 divide()方法
         System.out.println(result);
      } catch( Exception e) {   //對捕獲到的異常進行處理
         e.printstackTrace(); //打印捕獲的異常信息
      }       
   }
   //下面的方法實現了兩個整數相除,并使用 throws關鍵字聲明拋出異常
   public static int divide (int x, int y) throws Exception {
      int result=x / y;   //定義一個變量resu1t記錄兩個數相除的結果
      return result;
   }
}

 

運行結果:

D:\cn\itcast\chapter04>java Example2

2


例2中,由于使用了try…catch對divide()方法進行了異常處理,所以程序編譯通過,正確地打印出了運行結果2。

當在調用 divide()方法時,如果不知道如何處理聲明拋出的異常,也可以使用throws關鍵字繼續將異常拋出,這樣程序也能編譯通過,但需要注意的是,程序一旦發生異常,如果沒有被處理,程序就會非正常終止。

例3:

public class Example3{
   public static void main(String[] args) throws Exception {
      int result= divide(4,0); //調用divide()方法
      System.out.println(result);
   }
   //下面的方法實現了兩個整數相除,并使用throws關鍵詞字聲明拋出異常
   public static int divide(int x,int y) throws Exception {
      int result=x /y;  //定義一個變量result記錄兩個數相除的結果
      return result;  //將結果返回
   }
}


運行結果

D:\cn\itcast\chapter04>java Example3

Exception in thread “main” java.lang.ArithmeticException:/  by zero

         at Example25.divide(Exaple3.java:8)

         at exmaple25.main(Examle3.java3)


例3中,在使用main(方法調用divide()方法時,并沒有對異常進行處理而是繼續使用throws關鍵字將Exception拋出,從運行結果可以看出,程序雖然可以通過編譯,但在運行時由于沒有對“/by zero”的異常進行處理,最終導致程序終止運行。

以上我們介紹了,java中throws關鍵字的用法,如果深入學習java知識,請點擊頁面咨詢按鈕了解黑馬程序員java課程詳情。

分享到:
在線咨詢 我要報名
和我們在線交談!