golang中的错误处理
我需要用错误代码处理错误,并以JSON格式返回错误,如下所示golang中的错误处理,go,Go,我需要用错误代码处理错误,并以JSON格式返回错误,如下所示 { "errorCode":400, "errors":[ { "errorField":"dispachNumber", "errorDescription": "This is not a valid dispatch Number" }, { "errorField":"phone",
{
"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
切片,向其中添加一个错误,然后返回它
您的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>)
类型错误[]错误
func(Errors*e)ErrorHandle(…){
...
e=附加(e,)
}
错误;
myerrors.ErrorHandle()
myerrors.ErrorHandle()
这只是高级代码,您应该能够填充其余的。您总是创建一个新的空
AllErrors
切片,向其添加一个错误,然后返回它
您的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>)
类型错误[]错误
func(Errors*e)ErrorHandle(…){
...
e=附加(e,)
}
错误;
myerrors.ErrorHandle()
myerrors.ErrorHandle()
这只是高级代码,您应该能够填写其余部分。从外观上看,
AllErrors
是ErrorHandle
的一个局部变量,每次输入ErrorHandle
@Michael时,您都会将其初始化为一个空片段。我使用AllErrors
作为全局变量,它工作正常,但当多个用户请求相同的URL时,可能会产生意外的结果,如何解决这些问题从表面上看,AllErrors
是ErrorHandle
的一个局部变量,每次输入ErrorHandle
@Michael时,您都会将其初始化为一个空片段。我使用AllErrors
作为全局变量,它工作正常,但当多个用户请求相同的URL时,可能会产生意外的结果,如何解决这些问题。感谢回复它的工作,但需要根据错误代码附加错误字段和描述。假设in Errors已经有一个403错误,然后发生另一个错误,错误代码相同(403),那么我必须只添加错误字段和与错误代码相关的Desc。然后您可以操作现有错误。代码的总体问题是每次都返回一个新片段。您需要修改现有的接口。将json对象解析到接口中,然后获取该接口的基础值,以检查错误代码是否已经存在。通过这种方式,您可以使用新的错误字段更新现有的错误片段,感谢回复它的工作,但需要根据错误代码附加错误字段和描述。假设in Errors已经有一个403错误,然后发生另一个错误,错误代码相同(403),那么我必须只添加错误字段和与错误代码相关的Desc。然后您可以操作现有错误。代码的总体问题是每次都返回一个新片段。您需要修改现有的接口。将json对象解析到接口中,然后获取该接口的基础值,以检查错误代码是否已经存在。通过这种方式,您可以使用新的错误字段更新现有的错误片段