exception异常分类及处理
类图

分类(throwable超类)
1 error(java内部错误和资源耗尽,应用不会抛出该类)
2 exception(runtime, checked)
2.1 运行时异常RuntimeException(null, classcast)【transactional只会回滚这些】
如 : NullPointerException 、 ClassCastException ; RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。 如果出现 RuntimeException,那么一定是程序员的错误。
2.2 检查CheckedException(发生在编译阶段,强制程序去捕获:io, sql)
一个是检查异常CheckedException,如 I/O 错误导致的 IOException、SQLException。
- 试图在文件尾部读取数据
- 试图打开一个错误格式的url
- 给定字符串找class对象,类不存在
处理方式
抛出(主动throw, 函数throws, 系统自动抛异常)
try catch
throw和throws区别
1.位置不同
- throws在函数, 后面是异常类,可以多个。
- throw在函数内,后面是异常对象。
2.功能不同
throws用来声明异常,让调用者知道该功能可能出现的问题,预先处理。异常不一定会发生。
throw是抛出具体问题,执行到throw,功能就已经结束了。执行throw则一定发生异常。