Documentation
¶
Overview ¶
Package errorz provides various utilities for working with errors.
Index ¶
- func As[T any](err error) (T, bool)
- func Assertf(cond bool, format string, a ...any)
- func Catch0(f func() error) (outErr error)
- func Catch0Ctx(ctx context.Context, f func(ctx context.Context) error) (outErr error)
- func Catch1[T any](f func() (T, error)) (outV T, outErr error)
- func Catch1Ctx[T any](ctx context.Context, f func(ctx context.Context) (T, error)) (outV T, outErr error)
- func Catch2[T1 any, T2 any](f func() (T1, T2, error)) (outV1 T1, outV2 T2, outErr error)
- func Catch2Ctx[T1 any, T2 any](ctx context.Context, f func(ctx context.Context) (T1, T2, error)) (outV1 T1, outV2 T2, outErr error)
- func Catch3[T1 any, T2 any, T3 any](f func() (T1, T2, T3, error)) (outV1 T1, outV2 T2, outV3 T3, outErr error)
- func Catch3Ctx[T1 any, T2 any, T3 any](ctx context.Context, f func(ctx context.Context) (T1, T2, T3, error)) (outV1 T1, outV2 T2, outV3 T3, outErr error)
- func Errorf(format string, a ...any) error
- func IgnoreClose(c io.Closer)
- func MaybeMustWrap(err error, outerErrs ...error)
- func MaybeWrap(err error, outerErrs ...error) error
- func MaybeWrapRecover(r any, outerErrs ...error) error
- func MustClose(c io.Closer)
- func MustErrorf(format string, a ...any)
- func MustWrap(innerErr error, outerErrs ...error)
- func SDump(err error) string
- func Wrap(err error, outerErrs ...error) error
- func WrapRecover(r any, outerErrs ...error) error
- type AsHelper
- type Frame
- type Frames
- type IsHelper
- type UnwrapMulti
- type UnwrapSingle
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Assertf ¶
Assertf is like MustErrorf if cond is false, does nothing otherwise.
func Catch0Ctx ¶ added in v0.4.0
Catch0Ctx catches panics in a "func(context.Context) error" closure.
func Catch1Ctx ¶ added in v0.4.0
func Catch1Ctx[T any](ctx context.Context, f func(ctx context.Context) (T, error)) (outV T, outErr error)
Catch1Ctx catches panics in a "func(context.Context) (T, error)" closure.
func Catch2Ctx ¶ added in v0.4.0
func Catch2Ctx[T1 any, T2 any](ctx context.Context, f func(ctx context.Context) (T1, T2, error)) (outV1 T1, outV2 T2, outErr error)
Catch2Ctx catches panics in a "func(context.Context) (T1, T2, error)" closure.
func Catch3 ¶ added in v0.4.0
func Catch3[T1 any, T2 any, T3 any](f func() (T1, T2, T3, error)) (outV1 T1, outV2 T2, outV3 T3, outErr error)
Catch3 catches panics in a "func() (T1, T2, T3, error)" closure.
func Catch3Ctx ¶ added in v0.4.0
func Catch3Ctx[T1 any, T2 any, T3 any](ctx context.Context, f func(ctx context.Context) (T1, T2, T3, error)) (outV1 T1, outV2 T2, outV3 T3, outErr error)
Catch3Ctx catches panics in a "func(context.Context) (T1, T2, T3, error)" closure.
func IgnoreClose ¶
IgnoreClose calls io.Closer.Close, ignoring the returned error. Handy for the "defer Close" pattern.
func MaybeMustWrap ¶
MaybeMustWrap is like MustWrap, but does nothing if called with a nil error.
func MaybeWrapRecover ¶
MaybeWrapRecover is like WrapRecover but returns nil if called with a nil value.
func MustClose ¶
MustClose calls io.Closer.Close, panicking in case of error. Handy for the "defer Close" pattern.
func MustErrorf ¶
MustErrorf is like Errorf but panics with the wrapped error instead of returning it.
func WrapRecover ¶
WrapRecover takes a recovered value and converts it to a wrapped error.
Types ¶
type Frame ¶
type Frame struct { Summary string `json:"summary,omitempty"` Location string `json:"location,omitempty"` ShortLocation string `json:"shortLocation,omitempty"` Package string `json:"fullPackage,omitempty"` ShortPackage string `json:"package,omitempty"` Function string `json:"function,omitempty"` FileAndLine string `json:"fileAndLine,omitempty"` File string `json:"file,omitempty"` Line int `json:"line,omitempty"` }
Frame describes a frame.
type Frames ¶
type Frames []*Frame
Frames describes a stack of frames.
func GetFrames ¶
GetFrames returns the frames from the error, or the current frames the error is not wrapped or is nil.
func (Frames) ToSummaries ¶
ToSummaries converts the frames to a slice of frame summaries.
type UnwrapMulti ¶
type UnwrapMulti interface {
Unwrap() []error
}
UnwrapMulti describes a method which returns multiple errors.
type UnwrapSingle ¶
type UnwrapSingle interface {
Unwrap() error
}
UnwrapSingle describes a method which returns a single error.