> 文档中心 > springboot统一异常处理类

springboot统一异常处理类

文章目录

定义统一异常处理类

@RestControllerAdvice@Slf4jpublic class GlobalExceptionHandler{    @ExceptionHandler(ShiroException.class)    public JsonResult doShiroException(ShiroException e){JsonResult r=new JsonResult();r.setState(0);if(e instanceof UnknownAccountException){    r.setMessage("用户名不存在");}else if(e instanceof IncorrectCredentialsException){    r.setMessage("密码不正确");}else if(e instanceof LockedAccountException){    r.setMessage("账户被锁定");}else if(e instanceof AuthorizationException){    r.setMessage("没有权限");}else{    r.setMessage("认证或授权失败");}return r;    }    @ExceptionHandler(RuntimeException.class)    public JsonResult doHandleRuntimeException(RuntimeException e){ log.error("exception {}",e.getMessage()); e.printStackTrace(); return new JsonResult(e);    }}

说明:@ExceptionHandler目的是标注此方法处理异常,参数为抛出异常类类型,如果不加参数,类型为Exception.通俗来说,产生的异常类型是什么,就会触发那个异常处理方法,如果没有同名方法,会根据就近原则