错误类

package
v0.0.0-...-2910145 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 14, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Package gerror 提供了丰富的错误处理功能。

维护者请注意, 该包是一个基础包,除标准库和内部包外,**不应该**引入额外的包,以避免循环导入问题。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HasError别名

func HasError别名(err, target error) bool

HasError 是 Is 的别名,它具有更易于理解的语义。

func NewWithOption

func NewWithOption(option Option) error

NewWithOption 根据选项创建并返回一个自定义错误。 这是用于创建错误的高级用法,常在框架内部使用。

func X创建

func X创建(错误文本 string) error

New根据给定的文本创建并返回一个格式化后的错误。

func X创建并格式化

func X创建并格式化(格式 string, 参数 ...interface{}) error

Newf 返回一个错误,其格式化输出为给定的 format 和 args。

func X创建并跳过堆栈

func X创建并跳过堆栈(跳过堆栈 int, 错误文本 string) error

NewSkip 创建并返回一个根据给定文本格式化的错误。 参数 `skip` 指定了跳过堆栈调用者的数量。

func X创建并跳过堆栈与格式化

func X创建并跳过堆栈与格式化(跳过堆栈 int, 格式 string, 参数 ...interface{}) error

NewSkipf 返回一个格式化为给定格式和参数的错误。 参数 `skip` 指定了跳过的调用栈层数量。

func X创建错误码

func X创建错误码(错误码 错误码类.Code, 错误文本 ...string) error

NewCode创建并返回一个错误,该错误包含错误代码和给定的文本。

func X创建错误码并格式化

func X创建错误码并格式化(错误码 错误码类.Code, 格式 string, 参数 ...interface{}) error

NewCodef返回一个错误,该错误包含错误代码,并使用给定的格式和参数进行格式化。

func X创建错误码并跳过堆栈

func X创建错误码并跳过堆栈(错误码 错误码类.Code, 跳过堆栈 int, 错误文本 ...string) error

NewCodeSkip 创建并返回一个错误,该错误包含错误代码,并根据给定文本格式化而成。 参数`skip`用于指定跳过堆栈调用者的数量。

func X创建错误码并跳过堆栈与格式化

func X创建错误码并跳过堆栈与格式化(错误码 错误码类.Code, 跳过堆栈 int, 格式 string, 参数 ...interface{}) error

NewCodeSkipf 返回一个具有错误代码且格式化为给定格式和参数的错误。 参数 `skip` 指定了要跳过的堆栈调用者数量。

func X判断是否带堆栈

func X判断是否带堆栈(错误 error) bool

HasStack 检查并报告 `err` 是否实现了接口 `gerror.IStack`。

func X取下一层错误

func X取下一层错误(错误 error) error

Unwrap 返回下一层级的错误。 如果当前层级的错误或下一层级的错误为 nil,它将返回 nil。

func X取当前错误

func X取当前错误(错误 error) error

Current函数创建并返回当前层级的错误信息。 如果当前层级的错误信息为nil,则该函数返回nil。

func X取文本

func X取文本(错误 error) string

Stack 返回调用栈信息作为字符串。 如果`err`不支持堆栈信息,则直接返回错误字符串。

func X取根错误

func X取根错误(错误 error) error

Cause 返回 `err` 的根本原因错误。

func X取错误码

func X取错误码(错误 error) 错误码类.Code

Code 返回当前错误的错误代码。 如果该错误没有错误代码,或者未实现 Code 接口,它将返回 `CodeNil`。

func X多层错误

func X多层错误(上一层错误 error, 错误文本 string) error

Wrap 使用文本包装错误。如果给出的 err 为 nil,则返回 nil。 注意,它不会丢失被包装错误的错误码,因为它会继承该错误的错误码。

func X多层错误并格式化

func X多层错误并格式化(上一层错误 error, 格式 string, 参数 ...interface{}) error

Wrapf 返回一个错误,该错误在Wrapf调用的位置添加了堆栈跟踪信息以及格式化说明符。 如果给出的`err`为nil,则返回nil。 注意,它不会丢失被包装错误的错误码,因为它会继承该错误的错误码。

func X多层错误并跳过堆栈

func X多层错误并跳过堆栈(跳过堆栈 int, 上一层错误 error, 错误文本 string) error

WrapSkip 用于用文本包装错误。如果给定的 err 为 nil,则返回 nil。 参数 `skip` 指定了跳过的堆栈调用者数量。 注意,它不会丢失包装错误的错误码,因为它会继承该错误的错误码。

func X多层错误并跳过堆栈与格式化

func X多层错误并跳过堆栈与格式化(跳过堆栈 int, 上一层错误 error, 格式 string, 参数 ...interface{}) error

WrapSkipf 通过给定的格式和参数对错误进行包装并添加文本描述。如果给定的err为nil,此函数将返回nil。 参数`skip`用于指定跳过堆栈调用者的数量。 注意,它不会丢失包装错误的错误码,因为它会继承该错误的错误码。 以下是翻译后更详尽的中文注释: ```go WrapSkipf 函数用于对传入的错误 err 进行包装,同时使用给定的 format 和 args 格式化输出附加的错误信息。 若传入的原始错误 err 为 nil,则 WrapSkipf 函数直接返回 nil。 参数 `skip` 指定了在获取堆栈信息时需要跳过的调用层级数量。 需要注意的是,WrapSkipf 在对错误进行包装的过程中,会保留原始错误的错误代码,因为它从原始错误中继承了该错误代码属性。

func X多层错误码

func X多层错误码(错误码 错误码类.Code, 上一层错误 error, 错误文本 ...string) error

WrapCode 将错误用代码和文本包装起来。 如果给出的 err 为 nil,则返回 nil。

func X多层错误码并格式化

func X多层错误码并格式化(错误码 错误码类.Code, 上一层错误 error, 格式 string, 参数 ...interface{}) error

WrapCodef 将错误用代码和格式符包装起来。 如果给出的 `err` 为 nil,则返回 nil。

func X多层错误码并跳过堆栈

func X多层错误码并跳过堆栈(错误码 错误码类.Code, 跳过堆栈 int, 上一层错误 error, 错误文本 ...string) error

WrapCodeSkip 通过代码和文本包装错误。 如果给出的 err 为 nil,则返回 nil。 参数 `skip` 指定了需要跳过的堆栈调用者数量。

func X多层错误码并跳过堆栈与格式化

func X多层错误码并跳过堆栈与格式化(错误码 错误码类.Code, 跳过堆栈 int, 上一层错误 error, 格式 string, 参数 ...interface{}) error

WrapCodeSkipf 对给定的错误 err 进行包装,添加代码和格式化后的文本信息。如果给定的 err 为 nil,则返回 nil。 参数 `skip` 指定了需要跳过的堆栈调用者数量。

func X是否包含

func X是否包含(err, 待比较 error) bool

Is 报告当前错误 `err` 在其链式错误中是否包含错误 `target`。 这只是为了实现从 Go 1.17 版本开始的stdlib errors.Is功能。

func X是否包含错误码

func X是否包含错误码(错误 error, 错误码 错误码类.Code) bool

HasCode 检查并报告 `err` 在其链式错误中是否包含 `code`。

func X是否相等

func X是否相等(err, 待比较 error) bool

Equal 判断当前错误 `err` 是否等于目标错误 `target`。 请注意,在默认的 `Error` 比较逻辑中, 如果两个错误的 `code` 和 `text` 都相同,则认为它们是相同的错误。

Types

type Error

type Error struct {
	// contains filtered or unexported fields
}

Error 是自定义错误类型,用于提供额外功能。

func (*Error) Cause

func (err *Error) Cause() error

Cause 返回根本原因错误。

func (*Error) Code

func (err *Error) Code() 错误码类.Code

Code 返回错误代码。 如果没有错误代码,它将返回 CodeNil。

func (*Error) Current

func (err *Error) Current() error

Current函数创建并返回当前层级的错误信息。 如果当前层级的错误信息为nil,则该函数返回nil。

func (*Error) Equal

func (err *Error) Equal(target error) bool

Equal 判断当前错误 `err` 是否与目标错误 `target` 相等。 请注意,在默认的 `Error` 比较方式下, 如果两个错误的 `code` 和 `text` 都相同,则认为它们是相同的错误。

func (*Error) Error

func (err *Error) Error() string

Error 实现了 Error 接口,它将所有错误以字符串形式返回。

func (*Error) Format

func (err *Error) Format(s fmt.State, verb rune)

Format 根据 fmt.Formatter 接口格式化帧。

%v, %s : 打印所有错误字符串; %-v, %-s : 打印当前层级的错误字符串; %+s : 打印完整的堆栈错误列表; %+v : 打印错误字符串以及完整的堆栈错误列表

func (*Error) Is

func (err *Error) Is(target error) bool

Is 报告当前错误 `err` 在其链式错误中是否包含错误 `target`。 这只是为了实现从 Go 1.17 版本开始的stdlib errors.Is功能。

func (Error) MarshalJSON

func (err Error) MarshalJSON() ([]byte, error)

MarshalJSON 实现了 json.Marshal 接口所需的 MarshalJSON 方法。 注意:此处接收者不使用指针。

func (*Error) SetCode

func (err *Error) SetCode(code 错误码类.Code)

SetCode 将给定的代码用于更新内部代码。

func (*Error) Stack

func (err *Error) Stack() string

Stack 返回错误堆栈信息作为字符串。

func (*Error) Unwrap

func (err *Error) Unwrap() error

Unwrap 是函数 `Next` 的别名。 它仅为实现从 Go 1.17 版本开始的stdlib errors.Unwrap 接口而存在。

type ICause

type ICause interface {
	Error() string
	Cause() error
}

ICause 是 Cause 功能的接口。

type ICode

type ICode interface {
	Error() string
	Code() 错误码类.Code
}

ICode是Code功能的接口。

type ICurrent

type ICurrent interface {
	Error() string
	Current() error
}

ICurrent 是用于“当前特性”的接口。

type IEqual

type IEqual interface {
	Error() string
	Equal(target error) bool
}

IEqual 是用于 Equal 功能的接口。

type IIs

type IIs interface {
	Error() string
	Is(target error) bool
}

IIs 是 Is 特性的接口。

type IStack

type IStack interface {
	Error() string
	Stack() string
}

IStack 是 Stack 功能的接口。

type IUnwrap

type IUnwrap interface {
	Error() string
	Unwrap() error
}

IUnwrap 是用于 Unwrap 功能的接口。

type Option

type Option struct {
	Error error     // 如果存在,则为包装后的错误。
	Stack bool      // 是否将堆栈信息记录到错误中。
	Text  string    // 错误文本,由 New* 函数创建。
	Code  错误码类.Code // 如果必要,此处为错误代码。
}

Option 是用于创建错误的选项。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL