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

为@ExceptionHandler中的每个异常生成正确的状态

孙梓
2023-03-14

我使用@ControllerAdvision在Spring Boot控制器中捕获异常。在@ExceptionHandler中,我可以手动指定数量有限的异常及其状态代码。

我的问题是如何处理所有其他异常及其状态?

@ExceptionHandler(MethodArgumentNotValidException.class)
 public ResponseEntity<Object> argNotValidExceptionHandler(MethodArgumentNotValidException ex){
    String localizeMessage = ex.getLocalizeMessage();

    ErrorMessage errorMessage = new ErrorMessage(LocalDateTime.now(), localizeMessage);

    return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(errorMessage);
}

共有1个答案

锺玺
2023-03-14

您可以创建自定义异常类,并在定义这些自定义异常类时,配置发生此异常时应发送的http状态代码。因此,当您在异常处理程序中捕捉到此异常时,您可以从exception获得应该返回给用户的http状态代码,并发送相同的状态代码。

 类似资料:
  • 在阅读了一些关于为Spring创建自定义异常处理程序的博客文章后,我编写了以下类: 其目的是在JSON响应中发送,而不是放弃由于任何原因引发的Spring异常。 然而,这门课不起作用。 例如,当我命中服务器API的无效终结点时,我将获得默认的响应有效载荷: 我错过了什么? 谢谢。

  • 我试图在spring boot应用程序中使用swagger注释从Java代码中获取swagger规范(yaml)。我对模型进行注释,然后运行springboot应用程序,然后从http://localhost:8080/v2/api-文档。 我的模型如下所示: 我想为此创建正确的swagger yaml斑点。当我访问自动提供yaml的swagger UI时,我期待下面的内容。 注意dateOfBi

  • 我用Spring Boot和百里香SpringMVC。我有返回百里香模板名称的普通控制器和用< code>@RepsonseBody注释的REST控制器。 假设我有一个< code > EntityNotFoundException ,它是由控制器调用的某个代码抛出的。如果抛出,我想分别为REST控制器返回一个404状态代码和一个错误页面或错误消息。 我当前对普通控制器的设置: 对于REST控制程

  • 我正在使用@ExceptionHandler来管理我的所有异常,并为任何抛出异常的REST API返回一个JSON响应。目前我管理两个异常,第一个是ResourceNotFoundException,它可以工作,但第二个是FileExtensionException,它不工作。它在eclipse控制台中抛出这个异常,而在rest响应中抛出任何东西。 2015-09-21 09:09:05.197错

  • 我找不到一个好的解决方案:在我的Spring Boot应用程序中,作为一个方法,我需要定义一个处理程序,不是针对特定的异常,而是针对由特定异常(即包装异常)引起的任何异常。 例句:有时候我会这样: 我的自定义是我在一些Hibernate EventListener的预更新方法中抛出的异常,直接异常是无法发生持久性。 但是,以下尝试使用我的自定义异常的方法从未达到: 这里有一个类似的线程,答案是错误

  • 我有例外: 其他自定义异常从它继承: 处理它们。现在看起来就像是在那里: ExceptionHandler正确处理所有自定义异常,排除 在验证jwm-token时,此异常只在一种情况下抛出。 这样,Console中有3个stacktraces日志: 仅前端重装 请告诉我,怎么了。 附注。完整StackTrace: null 2019-07-14 17:04:38.791错误24060---[nio