package domain var ( ErrInvalidParams = NewXError(400, "invalid params") ErrRecordNotFound = NewXError(404, "record not found") ) func IsRecordNotFound(err error) bool { if e, ok := err.(*XError); ok { return e.GetCode() == ErrRecordNotFound.GetCode() } return false } type XError struct { Code int `json:"code"` Msg string `json:"msg"` } func NewXError(code int, msg string) *XError { return &XError{code, msg} } func (e *XError) Error() string { return e.Msg } func (e *XError) GetCode() int { if e.Code == 0 { return 100 } return e.Code }