Java中的異常處理還是比較有意思的!就是該你管就你管,不是你該管的,好不要越級管理!不然我這級管理存在就沒有意義!
Java的異常處理是通過5個關鍵字來實現的:try,catch,throw,throws,finally。這里我主要說一下throw,throws。
throws語句
throws總是出現在方法聲明時,用來標明該成員方法可能拋出異常。如果是多個異常,使用逗號隔開。對大多數Exception子類來說,Java 編譯器會強迫你聲明在一個成員函數中拋出的異常的類型。如果異常的類型是Error或 RuntimeException, 或它們的子類,這個規則不起作用, 因為這在程序的正常部分中是不期待出現的。 如果你想明確地拋出一個RuntimeException,你必須用throws語句來聲明它的類型。
throw語句
throw總是出現在方法體中,用來拋出一個異常。程序會在throw語句后立即終止,它后面的語句執行不到。通過throw拋出異常后,如果想在上一級代碼中來捕獲并處理異常,則需要在拋出異常的方法中使用throws關鍵字在方法聲明中指明要拋出的異常。
如果一個方法顯示的標識拋出異常,則必須使用try—catch語句。
以下是一個自定義異常類的例子:
class MyException extends Exception { //創建自定義異常類
String message; //定義String類型變量
public MyException(String ErrorMessagr) { //父類方法
message = ErrorMessagr;
}
public String getMessage(){ //覆蓋getMessage()方法
return message;
}
}
public class Captor { //創建類
static int div(int x,int y) throws MyException{//定義方法拋出異常
if(y < 0){ //判斷參數是否小于0
throw new MyException("除數不能是負數");//異常信息
}
return x/y;//返回值
}
public static void main(String args[]){ //主方法
try{ //try語句包含可能發生異常的語句
div(3,-1);//調用方法
}catch (MyException e) { //處理自定義異常
System.out.println(e.getMessage()); //輸出異常信息
}
catch (Exception e) { //處理其他異常
System.out.println("程序發生了其他的異常");
//輸出提示信息
}
}
}