前端怎么获得后端抛出的异常_Spring MVC/Boot 统一异常处理最佳实践
时间: 2024-01-22 07:01:52 浏览: 43
前端可以通过后端返回的 HTTP 状态码以及返回的错误信息来获得后端抛出的异常。在 Spring MVC/Boot 中,可以通过统一异常处理来捕获和处理后端的异常。
最佳实践是,定义一个全局异常处理器,通过 @ControllerAdvice 和 @ExceptionHandler 注解来统一处理异常。在全局异常处理器中,可以捕获所有的异常,并根据不同的异常类型进行不同的处理,例如返回不同的 HTTP 状态码和错误信息。
下面是一个简单的示例代码:
```java
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
@ResponseBody
public ResponseEntity<Object> handleException(Exception ex) {
HttpStatus status = getStatus(ex);
ErrorResponse errorResponse = new ErrorResponse(status.value(), ex.getMessage());
return new ResponseEntity<>(errorResponse, status);
}
private HttpStatus getStatus(Exception ex) {
if (ex instanceof BadRequestException) {
return HttpStatus.BAD_REQUEST;
} else if (ex instanceof NotFoundException) {
return HttpStatus.NOT_FOUND;
} else {
return HttpStatus.INTERNAL_SERVER_ERROR;
}
}
}
```
在上面的代码中,handleException 方法可以捕获所有的异常,并根据异常类型返回不同的 HTTP 状态码和错误信息。例如,如果是 BadRequestException 异常,就返回 400 Bad Request 状态码;如果是 NotFoundException 异常,就返回 404 Not Found 状态码;否则返回 500 Internal Server Error 状态码。同时,也可以在异常处理器中记录日志等信息,以便后续排查问题。