SpringMVC统一异常处理

统一异常拦截处理方式

项目中不可避免会出现一些异常情况,而一个web项目,若不拦截异常,糟糕的情况下可能直接将堆栈抛给前端,从而导致各种鬼畜的问题

I. 借助@ControllerAdvice拦截异常

给一个简单的demo,便可以很容易的了解这种手段如何处理了

@ControllerAdvice
@Slf4j
@ResponseBody
public class ActionExceptionHandler {

    @ExceptionHandler(value = Exception.class)
    public String defaultHandler(HttpServletRequest request, Exception e) {
        log.error("unexpected exception! request: {}, params: {} refer: {}, e: {}",
                request.getRequestURI(),
                request.getParameterMap(),
                request.getHeader("referer"),
                e);

        if (StringUtils.isBlank(e.getMessage())) {
            return ResponseWrapper.errorReturn(new Status(500, "内部异常"));
        } else {
            return ResponseWrapper.errorReturn(new Status(500, e.getMessage()));
        }
    }
}

这里主要借助两个注解来实现,ControllerAdvice 和 ExceptionHandler

II. 其他

声明

尽信书则不如,已上内容,纯属一家之言,因本人能力一般,见解不全,如有问题,欢迎批评指正

扫描关注,java分享

QrCode

转载于:https://my.oschina.net/u/566591/blog/1618252

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值