SpringBoot处理全局异常返回json字符串

  之所以要在项目中定义全局异常捕获,是因为直接异常信息给前端是真的很不友好。

首先,创建一个CommonExceptionHandler 类(自定义) ,在类头加上@ControllerAdvice注解。

/**
 * @Description: 公共异常处理类
 * @Author: Gary
 * @Date: 2019-03-22 23:57
 * 

Code is my soul.

*/ @Slf4j @ControllerAdvice public class CommonExceptionHandler { /** * 拦截Exception类的异常 * @param e * @return */ @ExceptionHandler(Exception.class) @ResponseBody public RestfulResponse exceptionHandler(Exception e){ log.warn(ExceptionUtils.getStackTrace(e)); return RestfulResponse.getRestfulResponse(StatusCode.GLOBAL_ERROR); } /** * 拦截HttpMessageNotReadableException类的异常 * @param e * @return */ @ExceptionHandler(HttpMessageNotReadableException.class) @ResponseBody public RestfulResponse messageNotReadableExceptionHandler(Exception e){ log.warn(ExceptionUtils.getStackTrace(e)); return RestfulResponse.getRestfulResponse(StatusCode.GLOBAL_ERROR); } }

部分异常无法捕获,需要添加新的方法去捕获。

你可能感兴趣的:(Java)