preHandle统一异常信息
时间: 2024-12-10 15:35:22 浏览: 12
`preHandle()` 是Spring MVC框架中的一个核心方法,它通常位于ControllerAdvice或者ExceptionHandler类中,主要用于对HTTP请求进行预处理。当控制器方法处理请求之前,`preHandle`方法会被调用。这个方法可以用来捕获并处理可能出现的异常,例如输入验证错误、权限检查失败等。
在`preHandle`方法内部,你可以编写自定义逻辑来统一处理异常,并将错误信息封装成一个标准的响应,如JSON格式的对象,然后返回给客户端。如果异常处理完成后,返回值通常是`true`,表示继续执行后续操作;如果是`false`或者抛出异常,则Spring会终止当前请求链路,执行异常处理器的其他部分,如进一步的日志记录、邮件通知等。
举个例子:
```java
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
try {
// 进行输入校验
validateInput(request);
// 检查用户权限
checkPermission(request);
} catch (ValidationException ve) {
handleValidationError(ve, response);
return false;
} catch (UnauthorizedException ue) {
handleUnauthorizedError(ue, response);
return false;
}
return true; // 如果一切正常,继续执行
}
private void handleValidationError(ValidationException ve, HttpServletResponse response) {
response.setContentType("application/json");
response.setStatus(HttpStatus.BAD_REQUEST.value());
response.getWriter().write(new ErrorResponse(ve.getMessage()).toString());
}
```
阅读全文