spring事务注解回滚

T-yio 发布于 2016/05/05 18:55
阅读 987
收藏 1

spring的事务回滚,我知道它默认只能捕获运行异常。我如何能实现,让我数据回滚之后,仅仅只是弹出一个对话框“您的操作失败了。”而不是500。

还有想问一下,我如何自定义异常。就是写一个 类继承异常之后, extends Exception之后,我该写些什么?

自定义异常可以仅仅是告诉你数据插入失败,接着执行之后的代码么?

谢谢

加载中
0
吃菜的鸟
吃菜的鸟

仅仅只是弹出一个对话框“您的操作失败了。”而不是500。

在controller捕获异常,想这么现实就怎么显示。如果是使用的springMVC可以使用异常处理接口,实现HandlerExceptionResolver来处理。

我如何自定义异常。就是写一个 类继承异常之后, extends Exception之后,我该写些什么?

异常类想怎么写就怎么写,可以什么都不写,只继承,然后捕获异常,判断异常的类型进行相应处理。

0
南湖船老大
南湖船老大

爱咋咋地,取决于你。

很明显,

仅仅只是弹出一个对话框“您的操作失败了。”而不是500
你需要的是ajax的效果,那就要你自己封装异常,返回JSON给页面

0
代码酷
代码酷

你是目的是既能回滚又能判断是那种错误类型从而在页面给予对应的错误提示是吧.

可以这样:

A类(不开事务,含有try-catch)调用B类(开启事务,含有try-catch,并抛出自定义的异常信息)中的方法,

B类方法报错则事务回滚,A类捕获B类的异常(由于try-catch,不会抛500异常)并根据错误信息类型弹出对应的信息

0
我_承宇
我_承宇
发生回滚你就抛异常,在 controller 层把异常捕获,然后采用 @ResponseBody 返回,前端捕获到后处理弹框。
0
小99
小99

所有的业务在service实现,异常抛出也在service层,然后去controller层去捕获异常,这样就能根据controller的异常判断是否成功还是失败了

0
T
T-yio

谢谢大家的回复。了解了一些异常处理机制。

方法调用者需要处理或继续抛出异常。直至最上层方法都没办法处理该异常就会出现500.

可以通过自定义异常来判断自己的事务中具体的哪个操作出了问题。当然实际中没有必要这么做。直接最上层方法捕获该RuntimeException进行处理就可以了。

自定义异常想怎么写呢?我网上找了一下。一般都是先继承Exception。当然我这里只需继承运行时异常就可以了。然后写几个构造函数,调用super类的方法就可以了。

最后简单了解了下SpringMVC的HandlerExceptionResolver接口,可以对一些错误异常信息进行友好提示。

返回顶部
顶部