Przeglądaj źródła

自定义构建异常结果

mxd 4 lat temu
rodzic
commit
5d0687c5ea

+ 3 - 3
magic-api/src/main/java/org/ssssssss/magicapi/controller/RequestHandler.java

@@ -279,7 +279,7 @@ public class RequestHandler extends MagicController {
 				throw root;
 			}
 			logger.error("接口{}请求出错", request.getRequestURI(), root);
-			return resultProvider.buildResult(requestEntity, RESPONSE_CODE_EXCEPTION, "系统内部出现错误");
+			return resultProvider.buildException(requestEntity, root);
 		} finally {
 			RequestContext.remove();
 		}
@@ -349,9 +349,9 @@ public class RequestHandler extends MagicController {
 		logger.error("测试脚本出错", root);
 		if (se != null) {
 			Span.Line line = se.getLine();
-			return new JsonBodyBean<>(-1000, se.getSimpleMessage(), resultProvider.buildResult(requestEntity, -1000, se.getSimpleMessage()), line == null ? null : Arrays.asList(line.getLineNumber(), line.getEndLineNumber(), line.getStartCol(), line.getEndCol()));
+			return new JsonBodyBean<>(-1000, se.getSimpleMessage(), resultProvider.buildException(requestEntity, se), line == null ? null : Arrays.asList(line.getLineNumber(), line.getEndLineNumber(), line.getStartCol(), line.getEndCol()));
 		}
-		return new JsonBean<>(-1, root.getMessage(), resultProvider.buildResult(requestEntity, RESPONSE_CODE_EXCEPTION, root.getMessage()));
+		return new JsonBean<>(-1, root.getMessage(), resultProvider.buildException(requestEntity, root));
 	}
 
 	/**

+ 12 - 0
magic-api/src/main/java/org/ssssssss/magicapi/provider/ResultProvider.java

@@ -15,6 +15,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
+import static org.ssssssss.magicapi.model.Constants.RESPONSE_CODE_EXCEPTION;
+
 /**
  * 结果构建接口
  */
@@ -75,6 +77,16 @@ public interface ResultProvider {
 		return buildResult(requestEntity, code, message, null);
 	}
 
+	/**
+	 * 构建异常返回结果
+	 * @param requestEntity	请求相关信息
+	 * @param throwable	异常信息
+	 * @since 1.2.2
+	 */
+	default Object buildException(RequestEntity requestEntity, Throwable throwable){
+		return buildResult(requestEntity, RESPONSE_CODE_EXCEPTION, "系统内部出现错误");
+	}
+
 	/**
 	 * 构建JSON返回结果
 	 *