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

Spring Boot自定义HTTP异常

亢雅懿
2023-03-14

我有这个方法来处理所有缺少请求头的异常,但在一个控制器中,希望接收一个json作为主体。如果它是无效的json或为null,则会使用自定义消息删除异常:

@ExceptionHandler(value = {ServletRequestBindingException.class, HttpMessageNotReadableException.class})
public final ResponseEntity<ErrorResponse> handleHeaderException(Exception ex) {
    List<String> details = new ArrayList<>();
    details.add(ex.getMessage());
    return new ResponseEntity<>(new ErrorResponse("Bad Request", details), HttpStatus.BAD_REQUEST);
}

{“消息”:“错误请求”,“详细信息”:[“必需的请求正文丢失:public org.springframework.http.responseentity packages.fazerlogin(packages.bodylogin)throws java.io.ioException”]}

@PostMapping(value = "v1/token", consumes = "application/json;charset=UTF-8")
public ResponseEntity<TokenOutputDto> doLogin(@RequestBody @Valid BodyLogin body) throws IOException {
    return authenticationModel.auth(body.getEmail(), body.getPassword());
}

共有1个答案

史涵育
2023-03-14

您可以通过以下方式在方法中处理这些异常处理程序:

@ExceptionHandler(value = {ServletRequestBindingException.class, HttpMessageNotReadableException.class})
public final ResponseEntity<ErrorResponse> handleHeaderException(Exception ex) {
    List<String> details = new ArrayList<>();
    if (ex instanceof IOException ) {
        if (ex.getCause() instanceof JsonParseException) {
            details.add("JSON parse error");
        } else {
            details.add("Required request body");
        }
    } else {
        details.add(ex.getMessage());
    }
    return new ResponseEntity<>(new ErrorResponse("Bad Request", details), HttpStatus.BAD_REQUEST);
}
 类似资料:
  • 本文向大家介绍Springboot之自定义全局异常处理的实现,包括了Springboot之自定义全局异常处理的实现的使用技巧和注意事项,需要的朋友参考一下 前言: 在实际的应用开发中,很多时候往往因为一些不可控的因素导致程序出现一些错误,这个时候就要及时把异常信息反馈给客户端,便于客户端能够及时地进行处理,而针对代码导致的异常,我们一般有两种处理方式,一种是throws直接抛出,一种是使用try.

  • 主要内容:Maven依赖关系,自定义HTTP头示例HTTP消息可以包含许多描述消息属性的标头,例如内容长度,内容类型,授权等。 HttpClient提供了检索,添加,删除和枚举标头的方法。 在下面的教程中,我们将演示如何将自定义HTTP头添加到HttpClient和Http请求方法。 Maven依赖关系 我们使用maven来管理依赖关系,并使用Apache HttpClient 4.5版本。 将以下依赖项添加到您的项目中。 pom.xml 文件的

  • 如果 Java 提供的内置异常类型不能满足程序设计的需求,这时我们可以自己设计 Java 类库或框架,其中包括异常类型。实现自定义异常类需要继承 Exception 类或其子类,如果自定义运行时异常类需继承 RuntimeException 类或其子类。 自定义异常的语法形式为: 在编码规范上,一般将自定义异常类的类名命名为 XXXException,其中 XXX 用来代表该异常的作用。 自定义异

  • 我试图在我的spring boot应用程序中实现一些自定义异常处理程序,它将能够处理自定义异常并显示批准消息和状态代码。 请帮忙。

  • 本文向大家介绍springboot中自定义异常以及定制异常界面实现过程解析,包括了springboot中自定义异常以及定制异常界面实现过程解析的使用技巧和注意事项,需要的朋友参考一下 不多说废话,直接进入主菜!! 步骤: 1.搭建SpringBoot的开发环境,略(有不会的可以私信我)。 2.编写一个自定义异常,自定义异常需要继承RuntimeException。写一个构造函数,并调用父类保存异常

  • 主要内容:前记,1.自定义视图,2.自定义异常,3.自定义异常的原理前记 在前面的文章中, 表示了视图解析的原理和异常解析器的解析原理。 这篇通过如何自定义视图和自定义异常处理和自定义异常处理的原理进行说明。 这里说明一下, 自定义的视图和自定义的异常都是会代替容器默认的组件的, 异常还好说, 就是不符合就抛, 视图的话需要注意一下优先级, 可以在自定义的视图解析器上加上注解。 1.自定义视图 这里原理就是添加一个视图和视图解析器, 然后放入容器中, 最后访问相应