/*
* 例外注意事項:
* A:子類重寫父類方法時,子類的方法必須拋出相同的例外或父類例外的子類,(父親壞了,兒子不能比父親更壞)
* B:如果父類拋出了多個例外,子類重寫父類時,只能拋出相同的例外或者是他的子集,子類不能拋出父類沒有的例外
* C:如果被重寫的方法沒有例外拋出,那么子類的方法絕對不可以拋出例外,如果子類方法內有例外發生,那么子類只能try,不能throws
*/
/*
* java不可能對所有的情況都考慮到,所以,在實際的開發中,我們可能需要自己定義例外,
* 而我們自己隨意的寫一個類,是不能作為例外類來看的,要想你的類是一個例外類,就必須繼承自Exception或者RuntimeException
*
* 兩種方式:
* A:繼承Exception
* B:繼承RuntimeException
自定義例外類
1 package cn.itcast_08; 2 3 /* 4 * java不可能對所有的情況都考慮到,所以,在實際的開發中,我們可能需要自己定義例外, 5 * 而我們自己隨意的寫一個類,是不能作為例外類來看的,要想你的類是一個例外類,就必須繼承自Exception或者RuntimeException 6 * 7 * 兩種方式: 8 * A:繼承Exception 9 * B:繼承RuntimeException 10 */ 11 public class MyException extends Exception { 12 public MyException() { 13 } 14 15 public MyException(String message) { 16 super(message); 17 } 18 } 19 20 // public class MyException extends RuntimeException { 21 // 22 // }
老師類(定義一個呼叫方法)
package cn.itcast_08; public class Teacher { public void check(int score) throws MyException { if (score > 100 || score < 0) { throw new MyException("分數必須在0-100之間"); } else { System.out.println("分數沒有問題"); } } // 針對MyException繼承自RuntimeException // public void check(int score) { // if (score > 100 || score < 0) { // throw new MyException(); // } else { // System.out.println("分數沒有問題"); // } // } }
自定義例外測驗類
package cn.itcast_08; import java.util.Scanner; /* * 自定義例外測驗類 */ public class StudentDemo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("請輸入學生成績:"); int score = sc.nextInt(); Teacher t = new Teacher(); try { t.check(score); } catch (MyException e) { e.printStackTrace(); } } }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/452810.html
標籤:Java
