123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- package base
- import (
- "fmt"
- "github.com/pkg/errors"
- )
- // Error for opt
- type Error struct {
- ErrorCode int
- ErrorMsg string
- ErrorUserMsg string
- }
- // NewError one
- func NewError(code int, message string, userMessage string) Error {
- return Error{
- ErrorCode: code,
- ErrorMsg: message,
- ErrorUserMsg: userMessage,
- }
- }
- func (err Error) Error() string {
- return err.ErrorMsg
- }
- // WrapPrint print Error & User like
- // Error {
- // ErrorCode: 400,
- // ErrorMsg: "something wrong with: %v",
- // ErrorUserMsg: "UI Error Tips: %v",
- // }
- //
- // Error {
- // ErrorCode: 400,
- // ErrorMsg: "something wrong with: %v",
- // ErrorUserMsg: "UI Error Tips",
- // }
- func (err Error) WrapPrint(core error, message string, user ...interface{}) error {
- if core == nil {
- return nil
- }
- ret := err
- SetErrPrintfMsg(&ret, core)
- if len(user) > 0 {
- SetErrPrintfUserMsg(&ret, user...)
- }
- return errors.Wrap(ret, message)
- }
- // Wrap Error like
- // Error {
- // ErrorCode: 400,
- // ErrorMsg: "action error",
- // ErrorUserMsg: "UI Error Tips",
- // }
- func (err Error) Wrap(core error) error {
- if core == nil {
- return nil
- }
- msg := err.ErrorMsg
- err.ErrorMsg = core.Error()
- return errors.Wrap(err, msg)
- }
- // SetErrPrintfMsg for API
- func SetErrPrintfMsg(err *Error, v ...interface{}) {
- err.ErrorMsg = fmt.Sprintf(err.ErrorMsg, v...)
- }
- // SetErrPrintfUserMsg for API
- func SetErrPrintfUserMsg(err *Error, v ...interface{}) {
- err.ErrorUserMsg = fmt.Sprintf(err.ErrorUserMsg, v...)
- }
- // value list
- var (
- MQTTPubError = Error{100002, "mqtt pub msg error", ""}
- NsqStatisPubError = Error{100003, "nsq pub statis, it only must is Statis", ""}
- HttpRetCodeError = Error{100004, "http response retcode err", "http response retcode err"}
- )
|