1. 程式人生 > 其它 >Java學習筆記——異常

Java學習筆記——異常

技術標籤:Javajavaexception

throws和throw的區別:

  • throws使用在函式上;用於丟擲異常類,可以跟多個,用逗號隔開。
  • throw使用在函式內;用於丟擲異常物件。
  • 當函式內容有throw丟擲異常物件,並未進行try處理,必須要在函式上宣告,否則編譯失敗。(RuntimeException除外,函式內如果丟擲RuntimeException異常,函式上可以不用宣告)

異常有兩種:

  • 編譯時被檢測異常:該異常在編譯時,如果沒有處理(沒有拋也沒有try),編譯失敗;該異常被標識,代表著可以被處理。
  • 執行時檢測(編譯時不檢測):在編譯時,不需要處理,編譯器不檢查;該異常的發生,建議不處理,讓程式停止,需要對程式碼進行修正。

程式碼示例

class FushuException extends Exception{
    private int value;
    FushuException(String msg,int value){
        super(msg);
        this.value=value;
    }
    public int getValue(){
        return value;
    }
}
class Demo{
    int div(int a,int b) throws FushuException{
        if(b<0)
            throw new FushuException(
"出現了除數是負數的情況!/by zero",b); return a/b; } } class 自定義異常 { public static void main(String[] args) { Demo d=new Demo(); try{ int x=d.div(4,-4); System.out.println("x="+x); } catch(FushuException e){ System.out.println(
e.toString()); System.out.println("除數出現負數:"+e.getValue()); } finally{ System.out.println("finally"); } System.out.println("over"); } }