異常-自定義異常的實現和測試

ZHOU_VIP發表於2018-09-05
考試成績必須在0-100之間
很明顯java沒有對應的異常,需要我們自己來做一個異常
自定義異常
繼承自Exception或繼承自RuntimeException,具體看自己的需求

package cn.itcast_08;

/*
 * java不可能對所有的情況都考慮到,所以,在實際的開發中,我們可能需要自己定義異常。
 * 而我們自己隨意的寫一個類,是不能作為異常類來看的,要想你的類是一個異常類,就必須繼承自Exception或者RuntimeException
 * 
 * 兩種方式:
 * A:繼承Exception,編譯期異常
 * B:繼承RuntimeException,執行期異常
 */
public class MyException extends Exception {
    public MyException() {
    }

    public MyException(String message) {
        super(message);
    }
}

// public class MyException extends RuntimeException {
//
// }
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();
        }
    }
}

 

相關文章