Java throws 使用

copy from: https://blog.csdn.net/kangguang/article/details/79177336編程

 

在開發中,若是去調用別人寫的方法時,是否能知作別人寫的方法是否會發生異常?這是很難判斷的。針對這種狀況,Java總容許在方法的後面使用throws關鍵字對外聲明該方法有可能發生異常,這樣調用者在調用方法時,就明確地知道該方法有異常,而且必須在程序中對異常進行處理,不然編譯沒法經過。ide

以下面代碼.net

 

package www.kangxg.jdbc;

public class Example {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
       int result = divide(4,2);
       System.out.println(result);
    }
    
    public static int divide(int x,int y) throws Exception
    {
        int result = x/y;
        return result;
    }

}
這時候 編譯器上會有錯誤提示  Unhandled exception type Exception
因此須要對調用divide()方法進行try...catch處理debug

 

package www.kangxg.jdbc;

public class Example {

    public static void main(String[] args) {
        
      try {
         int    result = divide(4,2);
          System.out.println(result);
       } catch (Exception e) {
        
          e.printStackTrace();
       }
      
    }
    
    public static int divide(int x,int y) throws Exception
    {
        int result = x/y;
        return result;
    }

}
debug 運行程序blog

 

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

package www.kangxg.jdbc;

public class Example {

    public static void main(String[] args) throws Exception {
        
          int    result = divide(4,0);
          System.out.println(result);
      
    }
    
    public static int divide(int x,int y) throws Exception
    {
        int result = x/y;
        return result;
    }

}
  開發

debug運行程序get

 

 

 

 

Java 運行時異常與編譯時異常編譯器

1. 編譯時異常io

   在Java 中,Exception類中除了RuntimeException 類及其子類外都是編譯時異常。編譯時異常的特色是Java編譯器會對其進行檢查,若是出現異常就必須對異常進行處理,不然程序沒法編譯經過。

  處理方法

   使用try... catch 語句對異常進行捕獲

   使用throws 關鍵字聲明拋出異常,調用者對其進行處理

2.運行時異常

  RuntimeException 類及其子類運行異常。運行時異常的特色是Java編譯器不會對其進行檢查。也就是說,當程序中出現這類異常時,即便沒有使用try... catch 語句捕獲使用throws關鍵字聲明拋出。程序也能編譯經過。運行時異常通常是程序中的邏輯錯誤引發的,在程序運行時沒法修復。例如 數據取值越界。

三 自定義異常

  JDK中定義了大量的異常類,雖然這些異常類能夠描述編程時出現的大部分異常狀況,可是在程序開發中有時可能須要描述程序中特有的異常狀況。例如divide()方法中不容許被除數爲負數。爲類解決這個問題,在Java中容許用戶自定義異常,但自定義的異常類必須繼承自Exception或其子類。例子以下

 

package www.kangxg.jdbc;

public class DivideDivideByMinusException  extends Exception {
    
    /**
     *
     */
    private static final long serialVersionUID = 1L;

    public DivideDivideByMinusException(){
        super();
    }
    
    public DivideDivideByMinusException(String message)
    {
        super(message);
    }
}
 

package www.kangxg.jdbc; public class Example {     public static void main(String[] args) throws Exception {                try {             int    result = divide(4,-2);              System.out.println(result);         } catch (DivideDivideByMinusException e) {                         System.out.println(e.getMessage());         }          }        public static int divide(int x,int y) throws DivideDivideByMinusException    {        if(y<0)        {            throw new DivideDivideByMinusException("被除數是負數");        }        int result = x/y;        return result;    } }————————————————版權聲明:本文爲CSDN博主「清雨未盡時」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。原文連接:https://blog.csdn.net/kangguang/article/details/79177336

相關文章
相關標籤/搜索