原文:http://www.jb51.net/article/94016.htm
異常關鍵字
1:try catch
try catch是這之間所包含的代碼如果出現異常時捕獲他,並進行處理的,如果代碼之間有錯誤,不會影響程序繼續執行下去,程序會繼續往後執行。
2:throw
是在程序中明確拋出引發的異常,比如throw new Exception();
3:throws
表明方法可能會引發異常,在方法內部並不處理這個異常,想要得到異常的話,調用者使用try catch語句即可得到
4:finally
不管有沒有異常程序段中都會被執行的代碼
一:自定義異常類:
//或者繼承RuntimeException(運行時異常)
public class MyException extends Exception {
private static final long serialVersionUID = 1L;
// 提供無參數的構造方法
public MyException() {
}
// 提供一個有參數的構造方法,可自動生成
public MyException(String message) {
super(message);// 把參數傳遞給Throwable的帶String參數的構造方法
}
}
二:寫一個測試分數的方法類:這裏面是拋出一個自己寫的異常類
public class CheckScore {
// 檢查分數合法性的方法check() 如果定義的是運行時異常就不用拋異常了
public void check(int score) throws MyException {// 拋出自己的異常類
if (score > 120 || score < 0) {
// 分數不合法時拋出異常
throw new MyException("分數不合法,分數應該是0--120之間");// new一個自己的異常類
} else {
System.out.println("分數合法,你的分數是" + score);
}
}
}
三:寫一個測試分數,如果有異常,要捕獲,不要拋出了
import java.util.Scanner;
/*
* 自定義的異常測試類
*/
public class Student {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
CheckScore check = new CheckScore();
try {
check.check(score);
} catch (MyException e) {// 用自己的異常類來捕獲異常
e.printStackTrace();
}
}
}