Go 语言错误处理方式
方式一
type ResponseError struct {
Code int `json:"code,omitempty"`
Message string `json:"message,omitempty"`
RequestId string `json:"requestId,omitempty"`
Data interface{} `json:"data,omitempty"`
}
func (r *ResponseError) Error() string {
return r.Message
}
func UnWrapResponse(err error) *ResponseError {
if v, ok := err.(*ResponseError); ok {
return v
}
return nil
}
func NewResponse(code int, msg string, args ...interface{}) error {
var data = make(map[int]interface{}, 0)
res := &ResponseError{
Code: code,
Message: fmt.Sprintf(msg, args...),
Data: data,
}
return res
}
ErrResponseParamBuildError = errors.NewResponse(1001, "构建response出错")