由于controller层直接由页面调用,项目要求controller层统一处理异常信息,不能将异常信息展示需求:SpringBoot项目Controller层异常统一处理,将异常信息屏蔽,给用户展示友好的出错信息。
方法:SpringBoot项目中可以使用ControllerAdvice和ExceptionHadler来统一处理Controller层异常。
定义一个类,并用@ControllerAdvice注解,然后定义统一处理异常的方法并用@ExceptionHandler注解。ExceptionHandler中的value是要统一处理的异常类,这里使用的Exception类,也可以指定具体的Exception子类。
@ControllerAdvice
public class ControllerExceptionHandler {
private static final Logger LOG = LoggerFactory.getLogger(ControllerExceptionHandler.class);
@ExceptionHandler(value = Exception.class)
@ResponseBody
public AjaxResult validatorExceptionHandler(Exception e) {
AjaxResult ajaxResult =new AjaxResult();
LOG.error(e.getMessage());
AjaxResult.error("请求错误","");
return ajaxResult;
}
}