Categorygithub.com/elliotxx/errors
modulepackage
1.0.0
Repository: https://github.com/elliotxx/errors.git
Documentation: pkg.go.dev

# README

An errors package for web development


elliotxx/errors is a golang package for web development, inspired by pkg/errors!

📜 Language

English | 简体中文

âš¡ Usage

go get -u github.com/elliotxx/errors

✨ Features

  • More detailed error information, e.g. error code, message, cause, stack trace
  • More powerful API
  • Lightweight

📚 Examples

Example 1:

package errcodes

import "github.com/elliotxx/errors"

var (
	Success                    = errors.NewErrorCode("00000", "success")
	NotFound                   = errors.NewErrorCode("A0100", "not found")
	AccessPermissionError      = errors.NewErrorCode("A0200", "abnormal access permission")
	AbnormalUserOperation      = errors.NewErrorCode("A0300", "abnormal user operation")
	InvalidParams              = errors.NewErrorCode("A0400", "invalid params")
	BlankRequiredParams        = errors.NewErrorCode("A0401", "required parameter is blank")
	MalformedParams            = errors.NewErrorCode("A0403", "parameter format mismatch")
	ServerError                = errors.NewErrorCode("A0500", "server error")
	TooManyRequests            = errors.NewErrorCode("A0501", "too many requests")
	ConcurrentExceedLimit      = errors.NewErrorCode("A0502", "the request parallel number exceeds the limit")
	WaitUserOperation          = errors.NewErrorCode("A0503", "please wait for user operation")
	RepeatedRequest            = errors.NewErrorCode("A0504", "repeated request")
)

Example 2:

detailErr := New("name is empty")
// detailErr.Error() returns "cause [name is empty]"

ErrBlankParameter := NewErrorCode("A0401", "required parameter is blank")
// ErrBlankParameter.Error() returns "code [A0401], msg [required parameter is blank]"

detailErr = NewDetailError("A0401", "required parameter is blank", fmt.Errorf("name is empty"))
// detailErr.Error() returns "code [A0401], msg [required parameter is blank], cause [name is empty]"

detailErr = Errorf("%s is not exist", "John")
// detailErr.Error() returns "cause [John is not exist]"

detailErr = Code("A0401").Msg("required parameter is blank").Cause(fmt.Errorf("name is empty"))
// detailErr.Error() returns "code [A0401], msg [required parameter is blank], cause [name is empty]"

detailErr = Code("A0401").Msg("required parameter is blank")
// detailErr.Error() returns "code [A0401], msg [required parameter is blank]"

detailErr = Code("A0401").Cause(fmt.Errorf("name is empty"))
// detailErr.Error() returns "code [A0401], cause [name is empty]"

detailErr = Code("A0401").Causef("name is empty")
// detailErr.Error() returns "code [A0401], cause [name is empty]"

detailErr = Code("A0401").Causef("%s is empty", "name")
// detailErr.Error() returns "code [A0401], cause [name is empty]"

rootCause := fmt.Errorf("name is empty")
detailErr = Code("A0401").Causewf(rootCause, "failed to validate parameter")
// detailErr.Error() returns "code [A0401], cause [failed to validate parameter: name is empty]"

detailErr = Msg("required parameter is blank")
// detailErr.Error() returns "msg [required parameter is blank]"

detailErr = ErrBlankParameter.Cause(fmt.Errorf("name is empty"))
// detailErr.Error() returns "code [A0401], msg [required parameter is blank], cause [name is empty]"

# Functions

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
New returns an error with the supplied message.
No description provided by the author
No description provided by the author
No description provided by the author
Wrap returns an error annotating err with a stack trace at the point Wrap is called, and the supplied message.
Wrapf returns an error annotating err with a stack trace at the point Wrapf is called, and the format specifier.
No description provided by the author

# Interfaces

No description provided by the author
No description provided by the author