异常
一、异常的分类
二、异常的介绍
1、异常的分类
- Error : 严重的系统错误,运行程序无法处理的错误(大多数错误与代码编写者执行的操作无关)。例如:硬件层面错误、JVM错误,内存不足。
- Exception :程序本身可以处理的异常,分为受检异常和非受检异常。
错误是程序本身无法处理的,异常是程序本身有能力处理。
2、受检异常和非受检异常的区别
- 受检查的异常:在编译时被强制检查的异常称为"受检查的异常"。即在方法的声明中声明的异常。
- 不受检查的异常:在方法的声明中没有声明,但在方法的运行过程中发生的各种异常被称为"不被检查的异常"。这种异常是错误,会被自动捕获。
3、非受检异常的介绍
RuntimeException:非受检异常,代表API设计者实现某个方法时,某些条件成立时会引发错误。(比如除法运算,如果除数为0,就会出现异常),而且认为API客户端应该在调用方法前做好检查,以避免发生错误。编译程序不会强制一定的在语法上进行处理。
在方法运行的过程中发生的异常
public int divisionMethod(int a,int b){ return a/b; }
如上:调用方法的客户端应该首先检查除数是否为0,如果不为0,才能调用上述方法。否则,将要抛出异常。
这些异常都是有程序的逻辑错误产生的,所以应该从程序的逻辑角度进行解决。
4、受检异常
除了RuntimeException及其子类以外,其他的Exception类及其子类都属于可查异常。
在API设计者实现某方法时候,某些条件成立时,会引发错误,而且认为调用方法的客户端有能力处理错误,要求编译程序提醒客户端必须明确处理错误,不然不通过编译。API客户端无权选择处理不处理,必须无条件接受。
参考资料:
- 《Java JDK8 学习笔记》