# exp **Repository Path**: nrgo/exp ## Basic Information - **Project Name**: exp - **Description**: nrgo 扩展的错误类型接口 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-02-19 - **Last Updated**: 2022-03-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # exp #### 介绍 ngro 扩展的错误类型接口 #### 使用说明 1. 创建 `exp` ```go // New 创建一个Code为819(DEFAULT_ERROR_CODE)的常规错误 func New(message string) Exp // NewF 创建一个Code为819(DEFAULT_ERROR_CODE)的常规错误 func NewF(format string, args ...interface{}) Exp // Code 创建一个包含自定义错误代码的错误 func Code(code int, message string) Exp // CodeF 创建一个包含自定义错误代码的错误 func CodeF(code int, format string, args ...interface{}) Exp // Wrap 创建一个包含自定义错误的错误,并包含引发此错误的原始错误 func Wrap(cause error, code int, message string) Exp // WrapF 创建一个包含自定义错误的错误,并包含引发此错误的原始错误 func WrapF(cause error, code int, format string, args ...interface{}) Exp ``` 2. 使用 `exp` ```go e := New(`exception`) e.Error() // exception e.Code() // 819 e2 := Wrap(errors.New(`cause`), 888, `exception`) e2.Cause() // {cause} ``` 3. 错误类型判断和堆栈信息 ```go // IsExp 校验 error 是否是对 Exp 的实现 func IsExp(err error) bool // CallStack 获取当前调用堆栈 // offset 指定从当前调用起需要忽略的堆栈 func CallStack(offset ...int) []string ``` #### 支持语言包的 Exp ```go // LExpCode 使用 exception/exp 的错误代码类型 type LExpCode int // LCode 创建制定错误目录中特定错误代码的错误 // @base 错误目录 eg.: 8190100 // @code 错误代码 eg.: 1 // @fallbackMessage 查询多语言失败时的回滚提示消息 // returns // @exp.Exp twig 中定义的错误类型 func LCode(base, code LExpCode, fallbackMessage string) Exp // LCodeF 创建制定错误目录中特定错误代码的错误 // @base 错误目录 eg.: 8190100 // @code 错误代码 eg.: 1 // @fallbackMessage 查询多语言失败时的回滚提示消息 // @args // returns // @exp.Exp twig 中定义的错误类型 func LCodeF(base, code LExpCode, fallbackMessage string, args ...interface{}) Exp // LWrap 以已引发的错误创建制定错误目录中特定错误代码的错误 // @cause 引发此错误的错误 // @base 错误目录 eg.: 8190100 // @code 错误代码 eg.: 1 // @fallbackMessage 查询多语言失败时的回滚提示消息 // returns // @exp.Exp twig 中定义的错误类型 func LWrap(cause error, base, code LExpCode, fallbackMessage string) Exp // LWrapF 以已引发的创建制定错误目录中特定错误代码的错误 // @cause 引发此错误的错误 // @base 错误目录 eg.: 8190100 // @code 错误代码 eg.: 1 // @fallbackMessage 查询多语言失败时的回滚提示消息 // @args // returns // @exp.Exp twig 中定义的错误类型 func LWrapF(cause error, base, code LExpCode, fallbackMessage string, args ...interface{}) Exp ``` #### 通过Log记录并返回这个错误,用于减少冗余代码 ```go // LogError 以指定错误等级记录并返回一个错误 func LogError(l log.Logger, lvl log.Level, err error) Exp // DebugError 记录调试日志,并返回错误 func DebugError(l log.Logger, err error) Exp // WarnError 记录警告日志,并返回错误 func WarnError(l log.Logger, err error) Exp // ErrError 记录错误日志,并返回错误 func ErrError(l log.Logger, err error) Exp // FatalError 记录致命日志,并返回错误,同时终止抛出异常 func FatalError(l log.Logger, err error) Exp ```