springboot实现统一异常处理

我们在使用springboot进行日常开发过程中,难免有的程序会因为某些原因抛出异常,而这些异常一般都是利用 try ,catch 的方式处理异常或者 throw,throws 的方式抛出异常不管。这种方法对于程序员来说处理也比较麻烦,所以我们希望既能方便程序员编写代码,不用过多的自己去处理各种异常编写重复的代码又能提升用户的体验,这时候全局异常处理就显得很重要也很便捷了,是一种不错的选择。

之前我们都在web层直接抛出,即controller类中。

我们现在统一进行处理,还是使用AOP来实现。将这个类放在common包下

//统一的异常处理实现类
​
@RestControllerAdvice
public class GlobalExceptionHandler {
    /**
     * 针对请求 404 处理
     这个404是指的是访问spring后,解析控制器地址找不到
     */
    @ResponseStatus(HttpStatus.NOT_FOUND)
    @ExceptionHandler(NoHandlerFoundException.class)
    public CommonResult noHandleFoundException(NoHandlerFoundException e) {
        CommonResult commonResult = new CommonResult(404,e.getMessage());
        return commonResult;
    }
​
​
    /**
     * 针对其他异常处理,默认是所有方法出现异常都会走到这里,通过注解标签来实现
     */
    @ExceptionHandler(Exception.class)
    public CommonResult globalException(Exception e) {
        CommonResult commonResult = new CommonResult(500,e.getMessage());
        //出现异常了,进行异常日志信息打印
        Logger logger= LoggerFactory.getLogger(LoginController.class);
        logger.error("系统出错:"+e.getStackTrace().toString());
​
        return commonResult;
    }
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值