Java學習筆記——異常
阿新 • • 發佈:2020-12-21
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");
}
}