⁉️异常处理
web全局异常处理! 明确异常的错误信息给用户提示,不要将错误日志抛给用户看
自定义异常被全局处理器感知
自定义的异常只需要继承 BusinessException 就能被全局异常感知到了,因为异常处理器做了以下的处理
/**
* 处理自定义异常
* @param e 异常
* @return 返回异常信息
*/
@ExceptionHandler(BusinessException.class)
public Object handleBusinessException(BusinessException e) {
log.error(e.getMessage(), e);
response.setHeader(CONTENT_TYPE_HEADER_NAME, APPLICATION_JSON_UTF8_VALUE);
return ExceptionResultWrap.error(e.getCode(), e.getErrorMessage(),null);
}已处理的异常如下
😱Exception
下面处理不到的异常都会走这个进行返回给前端
😱BusinessException
我们自定义的异常
😱NoHandlerFoundException
404 相关的异常 -> 路径不存在,请检查路径是否正确
😱NullPointerException
空指针异常 -> 暂时无法获取数据
😱HttpRequestMethodNotSupportedException
请求方式不对 - get post
😱HttpMessageNotReadableException
参数错误 -> 请求参数格式错误,请检查。错误消息(消息不可读)
😱MethodArgumentNotValidException
参数验证异常 -> javax.validation
😱RuntimeException
运行时异常
😱BindException
参数验证异常 -> springframework.validation
异常返回的对象
默认
自定义
新增一个类 CustomResult 实现 com.detabes.exception.result.ExceptionResult
Last updated