/*
* 異常的分類:
運行時期異常:RuntimeException的子類就是運行時期異常,在編譯時期可以自由選擇處理或者不處理
編譯時期異常:是Exception的子類,非RuntimeExcpetion的子類,在編譯時期必須處理
* 需求:寫一個方法,接受考試成績,如果考試成績的范圍在0-100之間則屬於正常,否則屬於異常
*
* throws:處理異常的一種方式,把異常拋出,由調用者來處理
* throw:制造異常的方式,並且結束方法
*
* 注意:如果拋出(throw)的是編譯時期異常,必須在方法聲明處拋出(throws)
*
* 如何自定義一個異常類呢?
* 非常簡單,寫一個類去繼承Exception或者RuntimeException,然后實現多個構造即可
* 繼承Exception則編譯使就需要處理異常。繼承RuntimeException則是運行后會報出異常。
*
*/
package day31_exception; public class MyException extends /*Exception */RuntimeException{ public MyException() { super(); } public MyException(String message){ super(message); } }
public class ExceptionDemo2異常的分類 { public static void main(String[] args) { try { boolean flag = checkNum(1099); System.out.println(flag); }catch (MyException e) { // e.printStackTrace();//printStackTrace輸出和系統輸出的報錯一致,優點在於這個報錯是try報出的不會使程序退出 System.out.println(e.toString()); } } public static boolean checkNum(int num) /*throws MyException */{ if(0>num || num>100) { // return false; throw new MyException("數據不在范圍內"); } return true; } }
輸出

