error.go 655 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package myth
  2. import (
  3. "database/sql"
  4. "errors"
  5. )
  6. // Error error
  7. type Error struct {
  8. c int
  9. s string
  10. }
  11. // NewError new
  12. func NewError(code int, text string) *Error {
  13. return &Error{c: code, s: text}
  14. }
  15. // Code err code
  16. func (e *Error) Code() int {
  17. return e.c
  18. }
  19. // Error err to string
  20. func (e *Error) Error() string {
  21. return e.s
  22. }
  23. // Unwrap return error
  24. func (e *Error) Unwrap() error {
  25. return errors.New(e.s)
  26. }
  27. // Is reports whether any error in err's chain matches target.
  28. func (e *Error) Is(err error) bool {
  29. return errors.Is(errors.New(e.s), err)
  30. }
  31. // ErrSQLNoRows SQL
  32. func ErrSQLNoRows(e error) bool {
  33. return errors.Is(e, sql.ErrNoRows)
  34. }