1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package com.kmall.common.utils;
- import com.google.common.collect.Maps;
- import org.apache.shiro.authz.AuthorizationException;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.dao.DuplicateKeyException;
- import org.springframework.web.bind.annotation.ExceptionHandler;
- import org.springframework.web.bind.annotation.RestControllerAdvice;
- import java.util.HashMap;
- /**
- * 异常处理器
- *
- * @author Scott
- * @email
- * @date 2016年10月27日 下午10:16:19
- */
- @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(DuplicateKeyException.class)
- public R handleDuplicateKeyException(DuplicateKeyException e) {
- logger.error(e.getMessage(), e);
- return R.error("数据库中已存在该记录");
- }
- @ExceptionHandler(AuthorizationException.class)
- public R handleAuthorizationException(AuthorizationException 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(e.getMessage());
- }
- @ExceptionHandler(ApiRRException.class)
- public Object handleApiRRException(ApiRRException e) {
- HashMap result = Maps.newHashMap();
- result.put("errno", e.getErrno());
- result.put("errmsg", e.getErrmsg());
- return result;
- }
- }
|