Quellcode durchsuchen

feat(优化): 增加异常base

huey vor 2 Jahren
Ursprung
Commit
ad9b686ac6

+ 4 - 0
src/main/java/com/dragon/tj/portal/common/dto/TestDTO.java

@@ -0,0 +1,4 @@
+package com.dragon.tj.portal.common.dto;
+
+public class TestDTO {
+}

+ 4 - 0
src/main/java/com/dragon/tj/portal/common/util/TestUtil.java

@@ -0,0 +1,4 @@
+package com.dragon.tj.portal.common.util;
+
+public class TestUtil {
+}

+ 4 - 0
src/main/java/com/dragon/tj/portal/common/vo/TestVO.java

@@ -0,0 +1,4 @@
+package com.dragon.tj.portal.common.vo;
+
+public class TestVO {
+}

+ 60 - 0
src/main/java/com/dragon/tj/portal/component/exception/base/FrameAbstractException.java

@@ -0,0 +1,60 @@
+package com.dragon.tj.portal.component.exception.base;
+
+
+/**
+ * @author huey China.
+ * @Description : 抽象异常
+ * @Date Created in 2023/6/15 15:49
+ */
+public abstract class FrameAbstractException extends RuntimeException {
+
+    public ResultError resultError;
+
+    public FrameAbstractException(ResultError resultError) {
+        super(resultError.getMsg());
+        this.resultError = convert(resultError);
+    }
+
+    public FrameAbstractException(ResultError resultError, String message) {
+        super(message);
+        this.resultError = convert(resultError);
+    }
+
+    /**
+     * 设置异常所属微服务
+     *
+     * @return 系统标识
+     */
+    public abstract String setSystemCode();
+
+    /**
+     * 获得返回码信息
+     *
+     * @return
+     */
+    public ResultError getResultError() {
+        return resultError;
+    }
+
+    ;
+
+    /**
+     * 转化成增加系统标识的错误码
+     *
+     * @param resultError
+     * @return
+     */
+    public ResultError convert(ResultError resultError) {
+        return new ResultError() {
+            @Override
+            public int getCode() {
+                return Integer.valueOf(String.format("%s%s", setSystemCode(), resultError.getCode()));
+            }
+
+            @Override
+            public String getMsg() {
+                return resultError.getMsg();
+            }
+        };
+    }
+}

+ 135 - 0
src/main/java/com/dragon/tj/portal/component/exception/base/FrameResultError.java

@@ -0,0 +1,135 @@
+package com.dragon.tj.portal.component.exception.base;
+
+import lombok.Getter;
+
+/**
+ * @author huey China.
+ * @Description : * @Description 公共错误码
+ * @Date Created in 2023/6/15 15:50
+ */
+public interface FrameResultError extends ResultError {
+
+
+    @Getter
+    enum BaseCode implements FrameResultError {
+
+
+        //=========================公共系统异常===========================
+        COMMON_SYSTEM_ERROR(100000, "系统错误"),
+        COMMON_SYSTEM_NULL_POINT(100001, "空指针异常"),
+        COMMON_SYSTEM_DATA_POINT(100002, "数据异常"),
+
+
+        //=========================参数校验异常===========================
+        PARAM_ERROR(110000, "参数错误"),
+        PARAM_HAADER_EMPTY(110001, "header参数为空"),
+        PARAM_HAADER_ERROR(110002, "header参数错误"),
+        PARAM_CLIENTID_ERROR(110003, "clientId参数错误"),
+        PARAM_LOGIN_ERROR(110004, "登录失败,请稍后重试"),
+
+
+        ;
+
+        BaseCode(int code, String msg) {
+            this.code = code;
+            this.msg = msg;
+        }
+
+        /**
+         * 错误码.
+         */
+        private int code;
+        /**
+         * 描述
+         */
+        private String msg;
+    }
+
+
+    /**
+     * 用户快速根据一个错误描述定义ResultError
+     *
+     * @param desc 错误描述
+     * @return ResultError
+     */
+    default ResultError to(String desc) {
+        ResultError resultError = this;
+        return new ResultError() {
+            @Override
+            public int getCode() {
+                return resultError.getCode();
+            }
+
+            @Override
+            public String getMsg() {
+                return desc;
+            }
+        };
+    }
+
+    /**
+     * 动态改变code,desc
+     *
+     * @param code
+     * @param desc
+     * @return
+     */
+    default ResultError to(int code, String desc) {
+        return new ResultError() {
+            @Override
+            public int getCode() {
+                return code;
+            }
+
+            @Override
+            public String getMsg() {
+                return desc;
+            }
+        };
+    }
+
+    /**
+     * 根据系统编码快速生成自定义错误ResultError
+     *
+     * @param systemCode 系统编码
+     * @param desc       错误描述
+     * @return
+     */
+    default ResultError to(String systemCode, String desc) {
+        ResultError resultError = this;
+        return new ResultError() {
+            @Override
+            public int getCode() {
+                return Integer.valueOf(String.format("%s%s", systemCode, resultError.getCode()));
+            }
+
+            @Override
+            public String getMsg() {
+                return desc;
+            }
+        };
+    }
+
+    /**
+     * 转变为增加微服务码前缀的ResultError
+     * 如果自定义异常实现FrameAbstractException接口,不需要考虑此方法。
+     *
+     * @param systemCode
+     * @return
+     */
+    default ResultError addSysCodePrefix(String systemCode) {
+        ResultError resultError = this;
+        return new ResultError() {
+            @Override
+            public int getCode() {
+                return Integer.valueOf(String.format("%s%s", systemCode, resultError.getCode()));
+            }
+
+            @Override
+            public String getMsg() {
+                return resultError.getMsg();
+            }
+        };
+    }
+
+}

+ 1 - 1
src/main/java/com/dragon/tj/portal/component/exception/GlobalExceptionHandler.java → src/main/java/com/dragon/tj/portal/component/exception/base/GlobalExceptionHandler.java

@@ -1,4 +1,4 @@
-package com.dragon.tj.portal.component.exception;
+package com.dragon.tj.portal.component.exception.base;
 
 import com.dragon.tj.portal.common.base.R;
 import lombok.extern.slf4j.Slf4j;

+ 23 - 0
src/main/java/com/dragon/tj/portal/component/exception/base/ResultError.java

@@ -0,0 +1,23 @@
+package com.dragon.tj.portal.component.exception.base;
+
+/**
+ * @author huey China.
+ * @Description : 错误码顶层接口
+ * @Date Created in 2023/6/15 15:49
+ */
+public interface ResultError {
+
+    /**
+     * 获取错误码
+     *
+     * @return 错误码
+     */
+    int getCode();
+
+    /**
+     * 获取错误描述信息
+     *
+     * @return 错误描述信息
+     */
+    String getMsg();
+}