123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package errors
- import (
- "errors"
- "strings"
- )
- func NewClass(code string, msgList ...string) WTErrorClass {
- var msg string
- if len(msgList) == 0 {
- msg = strings.Replace(code, "_", " ", -1)
- } else {
- msg = msgList[0]
- }
- return &wtErrorClass{
- msg: msg,
- code: code,
- base: false,
- }
- }
- func newBaseClass(code string, msgList ...string) WTErrorClass {
- var msg string
- if len(msgList) == 0 {
- msg = strings.Replace(code, "_", " ", -1)
- } else {
- msg = msgList[0]
- }
- return &wtErrorClass{
- msg: msg,
- code: code,
- base: true,
- }
- }
- func Is(err error, target any) bool {
- var wtErr WTError
- var normalErr error
- if errors.As(err, &wtErr) {
- errClass, isClass := target.(WTErrorClass)
- if isClass {
- return errClass.Code() == wtErr.Code()
- }
- wtTarget, isTarget := target.(WTError)
- if isTarget {
- if wtTarget == wtErr {
- return true
- }
- if wtTarget.Code() == wtErr.Code() {
- return true
- }
- return errors.Is(err, wtTarget)
- }
- } else if errors.As(err, &normalErr) {
- return errors.Is(err, normalErr)
- }
- return false
- }
- func As(err error, target any) bool {
- return errors.As(err, target)
- }
|