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()); }
.............
.............
............. }
