gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 05:18:08 25 4
gpt4 key购买 nike

我使用 @ControllerAdvice 来捕获 Spring Boot Controller 中的异常。在 @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);
}

由于我想捕获所有异常,因此似乎我应该在 @ExceptionHandler 中另外指定状态为 INTERNAL_SERVER_ERROR 的 Exception.class。

此时,即使状态为 4**,我也将获得所有其他异常的状态 500。

如何从每个异常中生成正确的状态代码并将其发送给客户端?

最佳答案

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

关于java - 为 @ExceptionHandler 中的每个异常生成正确的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56281567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com