首页 > 编程语言 > 详细

Springboot项目全局异常统一处理

时间:2019-11-17 14:06:33      阅读:129      评论:0      收藏:0      [点我收藏+]

1. 以前SpringMVC中的异常处理

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//SpringMVC全局异常处理器,如果要使用这个异常处理器,需要实例化
public class handlerException implements HandlerExceptionResolver {
    //返回的ModelAndView,如果有异常,就给用户一个页面地提示
    
    @Override
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {

        //进行异常处理


        //自定义异常,运行时异常(系统异常,例如数据库连接失败)

        //把异常通知给相关人员(短信,邮件)

        //需要给用户一个友好的提示

        return null;
    }
}

2. 在SpringBoot中的

   基于@ControllerAdvice注解的全局异常统一处理只能针对于Controller层的异常,意思是只能捕获到Controller层的异常,在service层或者其他层面的异常都不能捕获。

  (一)自定义异常:

 

/**
 * 自定义异常
 */
public class RRException extends RuntimeException {
    private static final long serialVersionUID = 1L;

    private String msg;
    private int code = 500;

    public RRException(String msg) {
        super(msg);
        this.msg = msg;
    }

    public RRException(String msg, Throwable e) {
        super(msg, e);
        this.msg = msg;
    }

}

    (二)统一全局异常处理

  

/**
 * @Description: 统一异常处理类
 * @Author: xuxiaoyu
 * @Create: 2019-11-17 10:48
 */
@ControllerAdvice
public class BaseExceptionHandler {
    @ExceptionHandler(value = Exception.class)
    @ResponseBody
    public Result error(Exception e){
          e.printStackTrace();
          return new Result(false, StatusCode.ERROR,e.getMessage());
    }
.............
.............
............. }

 

  

 

 

Springboot项目全局异常统一处理

原文:https://www.cnblogs.com/sjzxxy/p/11875923.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!