gpt4 book ai didi

go - golang 中的错误处理

转载 作者:数据小太阳 更新时间:2023-10-29 03:03:41 25 4
gpt4 key购买 nike

我需要使用错误代码处理错误并以 JSON 格式返回错误,如下所示。

{
"errorCode":400,
"errors":[
{
"errorField":"dispachNumber",
"errorDescription": "This is not a valid dispatch Number"
},
{
"errorField":"phone",
"errorDescription": "Phone numbers must be in the XXX-XXX-XXXX format"
}
]
}

{
"errorCode":500,
"errors":[
{
"errorDescription": "there was an internal server error"
}
]
}

我的问题是如何处理这种方式,这里我只能处理单个错误,但是当我处理多个错误时,它只返回一个错误结构,请参阅代码我是如何处理的。

Errors := ErrorHandle(403, "User Id", "User Id must be of integer type")
Errors = ErrorHandle(403, "Phone Number", "Phone Number type")

ErrorHandle() 功能与

func ErrorHandle(ErrorCode int, ErrorFields, ErrorDesc string) []Errors {
AllErrors := []Errors{}

if len(AllErrors) > 0 {
AllErrors = IterateErrors(AllErrors, ErrorCode, ErrorFields, ErrorDesc)
} else {
Errorsvalue := Errors{
ErrorCode: ErrorCode,
}
Error := Error{}
Error.ErrorFields = ErrorFields
Error.ErrorDescription = ErrorDesc
Errorsvalue.ErrorDesc = append(Errorsvalue.ErrorDesc, Error)

AllErrors = append(AllErrors, Errorsvalue)
}
return AllErrors
}

提前致谢!

最佳答案

您总是在创建一个新的空 AllErrors slice ,向其中添加一个错误,然后返回它。

您的 ErrorHandle 应该采用现有的错误列表并附加到它,或者您应该使用自定义的 type Errors []Error:

type Errors []Error
func (Errors *e) ErrorHandle(...) {
...
e = append(e, <new error>)
}

Errors myerrors;
myerrors.ErrorHandle(<first error>)
myerrors.ErrorHandle(<second error>)

这只是高级代码,您应该可以填写其余部分。

关于go - golang 中的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48076705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com