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

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

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

/**
 * @Description: 公共异常处理类
 * @Author: Gary
 * @Date: 2019-03-22 23:57
 * <p>Code is my soul.<p/>
 */
@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);
    }



}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值