31.3 自定义异常类 MyException

/*
* 异常的分类
运行时期异常: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;
    }
}

输出

原文地址:https://www.cnblogs.com/longesang/p/11290570.html