Go自定义error断言

error是一个interface

1
2
3
type error interface {
Error() string
}

自定义error

1
2
3
4
5
6
7
8
9
10
11
12
// InvalidValidationError ...
type InvalidValidationError struct {
Type reflect.Type
}

// Error returns InvalidValidationError message
func (e *InvalidValidationError) Error() string {
if e.Type == nil {
return "validator: (nil)"
}
return "validator: (nil " + e.Type.String() + ")"
}

自定义error处理

1
2
3
if _, ok := err.(*InvalidValidationError); ok {
// ... handle error
}
你的支持将鼓励我继续创作!