1.异常
所有异常都来自Throwable,
Error(错误)是程序无法处理的错误(修改代码无法处理),一般来自JVM的问题,发生于虚拟机自身或者虚拟机试图执行应用的时候,
比如内存溢出、虚拟机运行错误、类定义错误;
这些错误不可查,运行时才会发现;
Exception(异常)是可以通过修改代码处理的异常。
RuntimeException和其子类,表示“JVM常用操作错误”,比如空指针,下标越界、除0;
2.异常分类
不可查异常:RuntimeException和其子类、Error
可查异常:RuntimeException和其子类以外的异常都是可查异常(编译器会报错,需用try、catch、throws)
运行时异常:NullpointException(空指针异常),ClassCastException(类型转换异常),IndexOutOfBoundsException(数组越界异常)ArrayIndexOutOfBoundsException
非运行时异常(编译异常):比如IOException、SQLExcepiton
1、检查性异常: 不处理编译不能通过
2、非检查性异常:不处理编译可以通过,如果有抛出直接抛到控制台
3、运行时异常: 就是非检查性异常
4、非运行时异常: 就是检查性异常
3.声明自定义异常
所有异常都必须是 Throwable 的子类。
如果希望写一个检查性异常类,则需要继承 Exception 类。
如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。