123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package pb
- import (
- "strconv"
- "go-common/library/ecode"
- any "github.com/golang/protobuf/ptypes/any"
- )
- func (e *Error) Error() string {
- return strconv.FormatInt(int64(e.GetErrCode()), 10)
- }
- // Code is the code of error.
- func (e *Error) Code() int {
- return int(e.GetErrCode())
- }
- // Message is error message.
- func (e *Error) Message() string {
- return e.GetErrMessage()
- }
- // Equal compare whether two errors are equal.
- func (e *Error) Equal(ec error) bool {
- return ecode.Cause(ec).Code() == e.Code()
- }
- // Details return error details.
- func (e *Error) Details() []interface{} {
- return []interface{}{e.GetErrDetail()}
- }
- // From will convert ecode.Codes to pb.Error.
- //
- // Deprecated: please use ecode.Error
- func From(ec ecode.Codes) *Error {
- var detail *any.Any
- if details := ec.Details(); len(details) > 0 {
- detail, _ = details[0].(*any.Any)
- }
- return &Error{
- ErrCode: int32(ec.Code()),
- ErrMessage: ec.Message(),
- ErrDetail: detail,
- }
- }
|