异常处理机制的简单原理和应用。
所有异常的根类为Java.lang.Throwable.Throwable派生了2个子类:Error和Exception。
Error代表了JVM本身的错误,不能被程序员通过代码处理,如内存溢出。
Exception 分为IoException和RuntimeException 。
Error 和 RuntimeException 以及他们的子类。Javac在编译时,不会提示和发现这样的异常,不要求在程序处理这些异常称之为非检查异常,比如下标越界。编译器强制必须try.catch处理或throws声明继续抛给上层调用方法处理的异常称之为检查异常,比如使用jdbc连接数据库的SQLException。try块中放可能发生异常的代码。每一个catch块用于捕获并处理一个特定的异常,或者这异常类型的子类,顺序为从小到大。finally无论异常是否发生,异常是否匹配被处理,finally都会执行。
- 问题扩展:
Spring 框架的事务默认是RuntimeException才进行回滚,修改Transactional注解中的rollbackFor属性可以指定为exception异常回滚
- 结合项目中使用:
编写自定义异常,利用throw抛出自定义异常