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.通俗来说,产生的异常类型是什么,就会触发那个异常处理方法,如果没有同名方法,会根据就近原则