diff --git a/xujie-pms/src/main/java/com/xujie/pms/common/exception/XJExceptionHandler.java b/xujie-pms/src/main/java/com/xujie/pms/common/exception/XJExceptionHandler.java new file mode 100644 index 0000000..0b6cb64 --- /dev/null +++ b/xujie-pms/src/main/java/com/xujie/pms/common/exception/XJExceptionHandler.java @@ -0,0 +1,54 @@ + + +package com.xujie.pms.common.exception; + +import com.xujie.common.exception.XJException; +import com.xujie.common.utils.R; +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 org.springframework.web.servlet.NoHandlerFoundException; + +/** + * 异常处理器 + */ +@RestControllerAdvice +public class XJExceptionHandler { + private Logger logger = LoggerFactory.getLogger(getClass()); + + /** + * 处理自定义异常 + */ + @ExceptionHandler(XJException.class) + public R handleRRException(XJException e) { + R r = new R(); + r.put("code", e.getCode()); + r.put("msg", e.getMessage()); + e.printStackTrace(); + return r; + } + + @ExceptionHandler(NoHandlerFoundException.class) + public R handlerNoFoundException(Exception e) { + logger.error(e.getMessage(), e); + e.printStackTrace(); + return R.error(404, "路径不存在,请检查路径是否正确"); + } + + @ExceptionHandler(DuplicateKeyException.class) + public R handleDuplicateKeyException(DuplicateKeyException e) { + logger.error(e.getMessage(), e); + String message = ""; + message = "数据库存已在该记录!"; + return R.error(message); + } + + @ExceptionHandler(Exception.class) + public R handleException(Exception e) { + logger.error(e.getMessage(), e); + e.printStackTrace(); + return R.error(e.getMessage()); + } +}