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