** * token失效异常 * * @author chenshun * @email sunlightcs@gmail.com * @date 2016年10月27日 下午10:11:27 */ public class TokenException extends RuntimeException { private static final long serialVersionUID = 1L; private String msg; private int code = 501; public TokenException(String msg) { super(msg); this.msg = msg; } public TokenException(String msg, Throwable e) { super(msg, e); this.msg = msg; } public TokenException(String msg, int code) { super(msg); this.msg = msg; this.code = code; } public TokenException(String msg, int code, Throwable e) { super(msg, e); this.msg = msg; this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public int getCode() { return code; } public void setCode(int code) { this.code = code; }
@RestControllerAdvice public class RRExceptionHandler { private Logger logger = LoggerFactory.getLogger(getClass()); /** * 处理自定义异常 */ @ExceptionHandler(RRException.class) public R handleRRException(RRException e){ R r = new R(); r.put("code", e.getCode()); r.put("msg", e.getMessage()); return r; } /** * 处理自定义异常 */ @ExceptionHandler(TokenException.class) public R handleTokenException(TokenException e){ R r = new R(); r.put("code", e.getCode()); r.put("msg", e.getMessage()); return r; } @ExceptionHandler(DuplicateKeyException.class) public R handleDuplicateKeyException(DuplicateKeyException e){ logger.error(e.getMessage(), e); return R.error("数据库中已存在该记录"); } @ExceptionHandler(Exception.class) public R handleException(Exception e){ logger.error(e.getMessage(), e); return R.error(); } }
注意、一个spring Boot只能存在一个RestControllerAdvice捕捉全局异常,不能在新建一个类,导致捕捉异常失效