昨天学到自定义异常的时候…某up说自定义异常很少需要用到,今天练题的时候就碰到了,来码一下。
自定义异常类大概分为两种:
1.自定义异常类继承自Exception类
extends Exception;
2.自定义异常类继承自RuntimeException类
只需要检查运行期异常
下图是java异常类层次
其中runtimeException也就是运行时异常数组越界,空指针,非法运算居多。
Error和Exception区别在与前者多是JVM虚拟机错误,资源耗尽。后者是因编程错误或者偶然的外在问题,可以通过程序员手动修改解决。
定义类继承Exception或者RuntimeException,如果希望写一个检查性异常类,则需要继承 Exception 类。如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。
1,为了让该自定义类具备可抛性。
2.让该类具备操作异常的共性方法。
例:
这里抛出了异常自定义类TeamException并且括号里的参数是字符串类型的 想定义这个异常 可以新建类TeamException(要有一个无参构造方法和有参构造方法)
自然就可以更改参数,只要将将异常信息传递给父类通过super 语句即可。
其他笔记:
1.在捕获异常的代码块中,如果有一个代码异常了,就不会执行后面的异常。
在捕获到第一个数组越界异常后,第二个catch不予执行。
2.子类重写父类方法时,子类不能抛出大于父类的异常。