美文网首页
SpringBoot全局异常捕捉

SpringBoot全局异常捕捉

作者: 上进的小二狗 | 来源:发表于2018-08-13 14:58 被阅读0次

一、引言

web开发的时候,请求500,404等错误,为了界面友好化,整个站点抛任何异常的,全部拦截,统一返回

二、规则说明

1、新建一个class,取名
2、在class上添加注解,@ControllerAdvice
3、在class中添加一个方法
4、在方法上添加@ExceptionHandler拦截相应的异常信息
5、如果返回的是view --- 方法的返回值是ModelAndView
6、如果返回的是String或者是Json数据,那么需要在方法上添加@RequestBody注解
@ExceptionHandler 表示拦截异常
@ControllerAdvice 是 controller 的一个辅助类,最常用的就是作为全局异常处理的切面类
@ControllerAdvice 可以指定扫描范围
@ControllerAdvice 约定了几种可行的返回值,如果是直接返回 model 类的话,需要使用 @ResponseBody 进行 json 转换
返回 String,表示跳到某个 view
返回 modelAndView
返回 model + @ResponseBody

三、Demo

@ControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(RuntimeException.class)
    @ResponseBody
    public Map<String, Object> exceptionHandler() {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("errorCode", "101");
        map.put("errorMsg", "系統错误!");
        return map;
    }

}
@ControllerAdvice
public class GlobalDefaultExceptionHandler{
    
    @ExceptionHandler(value = Exception.class)
    public String defaultErrorHandler(HttpServletRequest req, Exception e)  {
        return "对不起,服务器繁忙,请稍后再试!";
}

相关文章

网友评论

      本文标题:SpringBoot全局异常捕捉

      本文链接:https://www.haomeiwen.com/subject/jdcubftx.html