1、自定義異常類測試
咱們知道全部的異常都是Exception,因此咱們須要自定義異常只須要繼承那個Exception類就能夠了。下面咱們自定義一個異常類,代碼以下:spa
/** * 自定義異常, */ //繼承 Exception public class MyException extends Exception{ public MyException(String message){ //出現異常打印的語句 super(message); } }
2、設計方法,拋出異常設計
下面咱們能夠設計一個方法,拋出異常,代碼以下:code
public class Student { //顯示拋出異常 ,能夠同時拋出多個, //那麼,調用此方法的就必須捕獲此異常或者繼續拋出 public void stu(int age) throws MyException,ArithmeticException{ if(age<18){ throw new MyException("靚仔,你年齡不夠"); } System.out.println("歡迎,報名!"); } }
注意拋出異常的格式是在方法後面使用throws關鍵字,能夠拋出多個異常使用英文逗號隔開便可。在程序裏面咱們要求年齡必須是大於18,不然就顯示的拋出異常,在這裏使用的關鍵字是throw。拋出咱們剛纔新建的異常類對象。對象
3、測試方法blog
咱們在main方法中調用這個方法。因爲咱們設計的這個方法拋出了異常。全部咱們在調用的時候編譯器要求咱們必須處理異常。咱們有兩種處理方法繼承
一、使用try...catch...捕獲異常編譯器
因爲方法拋出了兩個異常因此咱們兩個都須要捕獲。代碼以下:it
public class Run { public static void main(String[] args) { Student student = new Student(); try { student.stu(18); } catch (ArithmeticException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (MyException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
二、在調用的方法使用throws繼續拋出異常。io
咱們也須要拋出兩個異常。代碼以下: public class Run { public static void main(String[] args) throws ArithmeticException, MyException { Student student = new Student(); student.stu(18); } }