Java之Exception

来源:互联网 发布:淘宝商家的联系方式 编辑:程序博客网 时间:2024/06/03 12:44

在用Spring 的AOP进行事务管理的时候,碰到了一些关于Exception才回滚的问题。通过网上搜索资料总算明白了,跟网友分享一下。


先介绍一下Exception:

在Java中Exception大概分成3类:

(1)Error级别的错误,一般是系统级的错误,例如:内存溢出、硬件错误等,在应用中无法处理,程序遇到该异常会立即停止。

(2)unchecked exception:一般是Runtime Exception,就是在程序运行的时候才知道的错误,在编译的时候不会出问题。除非手工捕获异常,否则程序立即停止。

(3)checked exception:是程序员自愿抛出的异常,必须捕获或者抛出,在编译的时候会提示。程序遇到该异常不会立即停止,会在捕获异常之后继续运行。


再介绍Spring AOP:

Spring AOP也就是常说的切面编程,内部原理就是代理模式。通过网上搜索会有很对代理模式的介绍,这里不作说明。使用Spring AOP的事物管理的时候,会对出现异常的地方自动进行回滚。对于unchecked exception会自动触发回滚;对于checked exception如果直接捕获了,并没有抛出则不会触发回滚。如果抛出了checked exception,需要手工配置回滚的异常,在事物管理属性中通过rollback-for配置。


若有不足之处望大家指点!

0 0
原创粉丝点击