当前位置: 首页 > 知识库问答 >
问题:

Spring ExceptionHandler如何处理运行时异常

公西马鲁
2023-03-14

我使用Spring的@ControllerAdvice和@ExceptionHandler进行异常处理。任何方法都会从Controller中抛出自定义异常,并由相应的@ExceptionHandler处理它。如果发生运行时异常(例如任何HibernateException),那么它将抛出运行时异常,并且我没有任何@ExceptionHandler用于运行时异常。

共有1个答案

徐绪
2023-03-14

另一种方法是在控制器中不要捕捉异常。捕获服务层中的所有异常并抛出一个自定义异常。如果持久化记录失败,则抛出DatabaseExceptionwith Message。见以下方法:

Student persist(Student object){
   try{
      studentDao.insert(object);
   }catch(HibernateException e){
      throw new DatabaseException("database operation failed!");
   }
   return student;
}

您可以从异常处理程序方法中获取消息。这样您就可以对不同的异常设置不同的消息。

 类似资料:
  • 我正在努力定制我的spring kafka streams应用程序。我一直试图在我的KStreams上配置处理未捕获(运行时异常)。 参考文档https://docs.spring.io/spring-cloud-stream-binder-kafka/docs/3.1.0/reference/html/spring-cloud-stream-binder-kafka.html#_kafka_st

  • 我正在学习spring batch,并试图理解在异常期间项目处理器是如何工作的。 我试图通过在我的项目处理器中为一条记录手动抛出异常来模拟异常 现在根据跳过限制,当异常被抛出时,项目处理器将重新处理块并跳过抛出错误的项目,项目写入也将所有记录插入数据库,除了一条异常记录。 这一切都很好,因为我的处理器,它只是转换为大写字母名称,它可以运行很多次,但影响很大。 其他的选择是什么?

  • 我试图了解gRPC中的异常处理机制是如何工作的。 除了try-catch块之外,还有其他方法来处理运行时异常,例如服务器端的IllegalArgumentException吗? 例如,我有一些gRPC流式客户端服务,当传递的参数不满足深层次的一些断言时(在某些库中,例如,com.google.common.base.Preconditions),方法onNext抛出IllegalArgumentE

  • 本文向大家介绍Java异常处理运行时异常(RuntimeException)详解及实例,包括了Java异常处理运行时异常(RuntimeException)详解及实例的使用技巧和注意事项,需要的朋友参考一下   Java异常处理运行时异常(RuntimeException)详解及实例 RuntimeException RunntimeException的子类: ClassCastException

  • -致命异常:AsyncTask#3进程:kuldeep.mourya.com.smartCollege,pid:10617 java.lang.RuntimeException:在Android.os.AsyncTask$3执行doInBackground()时出错。done(AsyncTask.java:309)在java.util.concurrent.FutureTask.FinishCom

  • 问题内容: 我们正在进行有关如何处理REST异常的持续讨论。 响应内容类型:JSON 我们有两种解决方案: 将所有未检查的异常作为JSON响应抛出。 发送请求无效响应代码。 参数: 当出现错误时,为什么要返回JSON?只需发送无效的响应码即可。 相反的观点: 对于普通开发人员而言,响应代码的技术性太强。 你怎么说? 问题答案: 对于JSON API,我最近开发了两者。我总是使用有效的JSON进行响