`
月亮不懂夜的黑
  • 浏览: 155742 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring内异常 application exception overridden by commit exception

阅读更多

在执行某一操作时,意外发现自己定义的异常,无法被外面的Controller catch到。

追查发现在service内是可以正常打印异常信息,但外层Controller仅能拿到一个事务回滚的roolback异常。

仔细查看错误信息:

 

application exception overridden by commit exception

 应用自定义异常被事务异常覆盖了。

 

那么如何正常的在外层捕获到自定义的异常呢?

方法1.在对应的service上追加

@Transactional(rollbackFor = DemoException.class)

方法2.让自定义的异常继承RuntimeException(未校验,不过理论上是可以的)

 

那么为什么会可以呢?

事情的原因是 only unchecked exceptions cause rollbacks in spring transactions.(Spring的默认回滚RuntimeException)

在Spring事务管理里仅会回滚非检查异常。

我们捕获了一些特殊的情况,处理完之后会自动转化为一个checked exception 。事务不会对该异常做回滚。后续的事务回滚会覆盖自定义的异常。

 

0
0
分享到:
评论

相关推荐

    spring-dubbo-spring-boot.rar_java编程_spring_spring boot_threwwab_

    《Spring Dubbo与Spring Boot整合应用详解》 在现代企业级开发中,Spring框架和其衍生的Spring Boot已经成为Java开发者的重要工具。同时,随着微服务架构的流行,Dubbo作为一款高效率的服务治理框架,也得到了广泛...

    Spring Boot 2.4 配置文件将加载机制大变化.docx

    Spring Boot 2.4.0 引入了对配置文件加载机制的重大调整,这主要针对的是使用复杂配置的场景,比如结合Spring Cloud配置中心。这次更新的目的是为了更好地支持Kubernetes环境下的配置管理,尤其是Kubernetes的Config...

    C院Java常用单词

    48. **Array Index Out Of Bounds Exception**:数组索引越界异常发生在尝试访问数组不存在的索引时。 49. **Null Pointer Exception**:空指针异常发生在试图访问null引用的对象时。 50. **Class Not Found ...

    编程英语词汇汇总.doc

    * ArithmeticException:算术异常,用于描述算术运算的异常。 * IllegalArgumentException:非法数据异常,用于描述非法数据的异常。 * ArrayIndexOutOfBoundsException:数组索引越界异常,用于描述数组索引越界的...

    编程英语词汇

    异常处理相关的英语词汇有:Exception(异常)、Runtime Exception(运行时异常)、ArithmeticException(算术异常)、IllegalArgumentException(非法参数异常)、ArrayIndexOutOfBoundsException(数组索引越界...

    javafx-8u152-apidocs-api

    public abstract class Application extends Object Application class from which JavaFX applications extend. Life-cycle The entry point for JavaFX applications is the Application class. The JavaFX ...

    Java编程常用单词.pdf

    异常处理(Exception Handling)是Java编程中的重要部分,通过try-catch-finally语句块来捕获和处理可能出现的错误。 Java支持多线程(Multithreading),使得一个程序可以同时执行多个任务。垃圾回收机制(Garbage...

    编程英语词汇汇总.pdf

    - ArithmeticException:算术异常,例如除以零等运算错误。 - IllegalArgumentException:非法参数异常,传递给方法的参数无效。 - ArrayIndexOutOfBoundsException:数组索引越界异常,访问数组时使用的索引超出...

    微软内部资料-SQL性能优化3

    Application A lock resource defined by an application. The lock manager knows nothing about the resource format. It simply compares the 'strings' representing the lock resources to determine whether ...

    java常见单词翻译.doc

    Exception代表程序运行时可能出现的问题,如ArithmeticException(算术异常)、IOException(输入输出异常)等。try-catch-finally结构用于捕获和处理异常,throw和throws用于抛出异常。print Stack Trace()用于显示...

    .Net经典面试33条题及答案

    8. **Error与Exception**:Error通常代表系统级别的问题,可能难以恢复,而Exception是程序运行时可预见的异常,可以通过异常处理机制进行处理。 9. **final, finally, finalize的区别**:final用于声明不可更改的...

    java单词java单词.doc

    * ArithmeticException:算术异常,用于表示 Java 算术运算中的异常。 * IllegalArgumentException:非法数据异常,用于表示 Java 非法数据异常。 * ArrayIndexOutOfBoundsException:数组索引越界异常,用于表示 ...

    编程英语词汇.pdf

    Exception是程序运行时发生的不正常情况的类,包括Runtime Exception(运行时异常)、Arithmetic Exception(算术异常)、IllegalArgumentException(非法数据异常)等。异常处理的关键字有try、catch、finally、...

    Java选择题.pdf

    因此,只有"ArithmeticException异常,"会被打印,最后执行finally块,答案是"A"。 以上是对Java选择题中的知识点进行的详细解释,涵盖了继承、构造方法、方法重载、多态、异常处理、对象的转型以及日志框架log4j的...

    jdk1.6与jboss5.x冲突问题的解决方法

    描述中提到的问题是尝试在后台声明一个Web服务,但在前台调用时抛出了`java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage`的异常。这通常意味着在处理...

    VC帮助文档

    Public and protected class members are documented only when they are normally used in application programs or derived classes. Occasionally, private members are listed because they override a public ...

    java必记单词

    #### Exception handling 异常处理 - **定义**:异常处理是一种机制,用于捕获和处理异常。 - **应用场景**:确保程序在遇到异常时能够正常运行。 #### Garbage collection 垃圾回收机制 - **定义**:垃圾回收机制...

    java讲义PPT(2)

    方法重载(Overloading)指的是在同一个类中定义多个同名但参数列表不同的方法,而方法覆盖(Overridden)是指子类重写父类的方法。 接下来,我们将讨论今天的学习内容。在高级类的特性中,`static`和`final`关键字...

Global site tag (gtag.js) - Google Analytics