51 lines
850 B
Go
51 lines
850 B
Go
package utils
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
)
|
|
|
|
type ErrorWithCode struct {
|
|
level int
|
|
str string
|
|
code string
|
|
intCode int
|
|
}
|
|
|
|
func NewErrorCode(err, code string, level ...int) *ErrorWithCode {
|
|
retVal := &ErrorWithCode{
|
|
str: err,
|
|
code: code,
|
|
}
|
|
retVal.intCode, _ = strconv.Atoi(code)
|
|
if len(level) > 0 {
|
|
retVal.level = level[0]
|
|
}
|
|
|
|
return retVal
|
|
}
|
|
|
|
func NewErrorIntCode(err string, code int, level ...int) *ErrorWithCode {
|
|
return NewErrorCode(err, Int2Str(code), level...)
|
|
}
|
|
|
|
func (e *ErrorWithCode) Error() string {
|
|
return fmt.Sprintf("level:%d, str:%s, code:%s", e.level, e.str, e.code)
|
|
}
|
|
|
|
func (e *ErrorWithCode) String() string {
|
|
return e.Error()
|
|
}
|
|
|
|
func (e *ErrorWithCode) Level() int {
|
|
return e.level
|
|
}
|
|
|
|
func (e *ErrorWithCode) Code() string {
|
|
return e.code
|
|
}
|
|
|
|
func (e *ErrorWithCode) IntCode() int {
|
|
return e.intCode
|
|
}
|