mirror of
https://github.com/alexgo-io/gaze-indexer.git
synced 2026-01-12 16:53:08 +08:00
feat: add code to errs.PublicError
This commit is contained in:
@@ -11,6 +11,7 @@ import (
|
|||||||
type PublicError struct {
|
type PublicError struct {
|
||||||
err error
|
err error
|
||||||
message string
|
message string
|
||||||
|
code string // code is optional, it can be used to identify the error type
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p PublicError) Error() string {
|
func (p PublicError) Error() string {
|
||||||
@@ -21,6 +22,10 @@ func (p PublicError) Message() string {
|
|||||||
return p.message
|
return p.message
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p PublicError) Code() string {
|
||||||
|
return p.code
|
||||||
|
}
|
||||||
|
|
||||||
func (p PublicError) Unwrap() error {
|
func (p PublicError) Unwrap() error {
|
||||||
return p.err
|
return p.err
|
||||||
}
|
}
|
||||||
@@ -29,6 +34,10 @@ func NewPublicError(message string) error {
|
|||||||
return withstack.WithStackDepth(&PublicError{err: errors.New(message), message: message}, 1)
|
return withstack.WithStackDepth(&PublicError{err: errors.New(message), message: message}, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NewPublicErrorWithCode(message string, code string) error {
|
||||||
|
return withstack.WithStackDepth(&PublicError{err: errors.New(message), message: message, code: code}, 1)
|
||||||
|
}
|
||||||
|
|
||||||
func WithPublicMessage(err error, prefix string) error {
|
func WithPublicMessage(err error, prefix string) error {
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return nil
|
return nil
|
||||||
@@ -41,3 +50,16 @@ func WithPublicMessage(err error, prefix string) error {
|
|||||||
}
|
}
|
||||||
return withstack.WithStackDepth(&PublicError{err: err, message: message}, 1)
|
return withstack.WithStackDepth(&PublicError{err: err, message: message}, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func WithPublicMessageCode(err error, prefix string, code string) error {
|
||||||
|
if err == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
var message string
|
||||||
|
if prefix != "" {
|
||||||
|
message = fmt.Sprintf("%s: %s", prefix, err.Error())
|
||||||
|
} else {
|
||||||
|
message = err.Error()
|
||||||
|
}
|
||||||
|
return withstack.WithStackDepth(&PublicError{err: err, message: message, code: code}, 1)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user