From a677a8312bef888570adc2eb2c8a94497b654f77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Sat, 21 Jun 2025 20:41:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=93=8D=E5=BA=94=E6=95=B0=E6=8D=AE=E5=BA=8F?= =?UTF-8?q?=E5=88=97=E5=8C=96=E5=87=BA=E7=8E=B0=E5=BC=82=E5=B8=B8,=20?= =?UTF-8?q?=E8=A7=A6=E5=8F=91panic?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- response/response.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/response/response.go b/response/response.go index 27ac9be..7670eed 100644 --- a/response/response.go +++ b/response/response.go @@ -93,9 +93,14 @@ func Send(ctx *gin.Context, code any, httpCode int, data any, responseOption *de ctx.Set(responseConfig.ResponseDataField, responseData) responseException := exception.New(code, responseData) responseContentType := getResponseDataType(responseOption.ContentType) - responseInstance, _ := wrapper.NewJson(serialize.JSON.MarshalForStringIgnoreError(responseException.Data()), &wrapper.Option{XmlName: responseOption.XmlName}) - finalResponseData, _ := responseInstance.Marshal(responseContentType) - ctx.Data(http.StatusOK, responseOption.ContentType, finalResponseData) + responseStr := serialize.JSON.MarshalForStringIgnoreError(responseException.Data()) + if responseInstance, err := wrapper.NewJson(responseStr, &wrapper.Option{XmlName: responseOption.XmlName}); nil != err { + // 接口处理成功, 数据序列化出现异常 + panic(err.Error()) // 直接panic, 交给gin处理 + } else { + finalResponseData, _ := responseInstance.Marshal(responseContentType) + ctx.Data(http.StatusOK, responseOption.ContentType, finalResponseData) + } } // getResponseDataType 获取相应数据类型