|
@@ -9,9 +9,10 @@ import com.ruoyi.common.core.domain.R;
|
|
|
import com.ruoyi.common.exception.DemoModeException;
|
|
|
import com.ruoyi.common.exception.ServiceException;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.mybatis.spring.MyBatisSystemException;
|
|
|
import org.springframework.context.support.DefaultMessageSourceResolvable;
|
|
|
-import org.springframework.validation.BindException;
|
|
|
import org.springframework.dao.DuplicateKeyException;
|
|
|
+import org.springframework.validation.BindException;
|
|
|
import org.springframework.web.HttpRequestMethodNotSupportedException;
|
|
|
import org.springframework.web.bind.MethodArgumentNotValidException;
|
|
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
|
@@ -82,6 +83,21 @@ public class GlobalExceptionHandler {
|
|
|
return R.fail("数据库中已存在该记录,请联系管理员确认");
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Mybatis系统异常 通用处理
|
|
|
+ */
|
|
|
+ @ExceptionHandler(MyBatisSystemException.class)
|
|
|
+ public R<Void> handleCannotFindDataSourceException(MyBatisSystemException e, HttpServletRequest request) {
|
|
|
+ String requestURI = request.getRequestURI();
|
|
|
+ String message = e.getMessage();
|
|
|
+ if (message.contains("CannotFindDataSourceException")) {
|
|
|
+ log.error("请求地址'{}', 未找到数据源", requestURI);
|
|
|
+ return R.fail("未找到数据源,请联系管理员确认");
|
|
|
+ }
|
|
|
+ log.error("请求地址'{}', Mybatis系统异常", requestURI, e);
|
|
|
+ return R.fail(message);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 业务异常
|
|
|
*/
|