異常處理(Exception)

什麼叫異常(Exception):在程序運行過程中出現的錯誤
再看一張圖
這裏寫圖片描述
異常的分類
異常主要分爲:錯誤、一般性異常(受控異常)、運行期異常(非受控異常)
1)錯誤:如果應用程序出現了Error,那麼將無法恢復,只能重新啓動應用程序,最典型的Error的異常是:OutOfMemoryError(內存溢出)
2)受控異常:出現了這種異常必須顯示的處理,不顯示處理java程序將無法編譯通過
3)非受控異常:此種異常可以不用顯示的處理,例如被0除異常,java沒有要求我們一定要處理
.如何處理異常?

第一種處理方式
異常的捕獲和處理需要採用trycatch來處理,具體格式如下:
try {
 //包含了可能產生異常的代碼
}catch(OneException e) {  
//處理的方式1
}catch(TwoException e) {
//處理的方式2
}finally {//finally可要可不要
//一定要執行的代碼 

}
第二種處理方式
  public void haha()  throws Exception1 e1,Exception2 e2{
        //可能出現異常(尤其是編譯時異常,一定要處理)
        //這裏的意思是指將可能出現的異常交給上層去處理,不用自己處理
     }
第三種處理方式(自己手動拋出異常+自己定義一個異常)
/**定義一個自定義異常類繼承Exception
 * 並寫一個構造函數
 */

public class TestException  extends Exception{
public TestException(String string) {
    System.out.println(string);;}
}
import java.util.Scanner;
/**
 *定義一個簡單的測試類,如果輸入的除數爲0就拋出你“除數不能爲0!” 其實系統會自己檢查拋出異常的,我們這裏僅僅爲了舉例說明如何自定義異常及拋出來
 */
public class Test {
    public static void main(String[] args) throws Exception {
        int i = 0;
        int x = 0;
        Scanner input = new Scanner(System.in);
        i=input.nextInt();
        x=input.nextInt();
        double  y;
        if (i==0) {
             throw  new TestException("除數不能爲0!!");//拋出自己定義的異常
        }
        y=x/i;
        System.out.println(y);
    }
}

顯示結果
0
5
除數不能爲0!!
Exception in thread "main" TestException
    at Test.main(Test.java:12)

註釋::如果我們是用eclipse作爲我們IDE的話 ,系統會自己檢查異常的我們會只需要按照系統的提示,拋出相應的異常就行了,但我們要明白異常的體系結構和爲什麼會拋出異常。。。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章