errorx

package module
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: Mar 28, 2025 License: MIT Imports: 4 Imported by: 1

README

errorx

test workflow

Intro

Extended error handling with comparable code.

Quick Start

Documents visit https://pkg.go.dev/github.com/chg1f/errorx

Documentation

Index

Examples

Constants

This section is empty.

Variables

View Source
var Stacktrace = func() Stack { return nil }
View Source
var Unspecified = struct{}{}

Functions

func As added in v1.0.4

func As(err error, target any) bool

func Errorf added in v1.0.4

func Errorf(format string, a ...any) error

func In added in v1.0.4

func In[T comparable](err error, code T) bool
Example
err := New("...")
if In(err, Unspecified) {
	// do something
}
Output:

func Is added in v1.0.4

func Is(err, target error) bool

func Join added in v1.0.4

func Join(errs ...error) error

func New added in v1.0.4

func New(text string) error

func Unwrap added in v1.0.4

func Unwrap(err error) error

func Wrap added in v1.0.4

func Wrap(err error) error

Types

type Builder added in v1.0.4

type Builder[T comparable] Error[T]

func Code added in v1.0.4

func Code[T comparable](code T) Builder[T]

func Override added in v1.0.4

func Override[T comparable](msg string) Builder[T]

func (Builder[T]) Code added in v1.0.4

func (eb Builder[T]) Code(code T) Builder[T]

func (Builder[T]) Errorf added in v1.0.4

func (eb Builder[T]) Errorf(format string, args ...interface{}) error

func (Builder[T]) Join added in v1.0.4

func (eb Builder[T]) Join(e ...error) error

func (Builder[T]) New added in v1.0.4

func (eb Builder[T]) New(msg string) error

func (Builder[T]) Override added in v1.0.4

func (eb Builder[T]) Override(msg string) Builder[T]

func (Builder[T]) Wrap added in v1.0.4

func (eb Builder[T]) Wrap(err error) error

type Comparable added in v1.0.4

type Comparable[T comparable] interface {
	In(T) bool
}

type Error added in v1.0.4

type Error[T comparable] struct {
	// contains filtered or unexported fields
}

func Be added in v1.0.4

func Be[T comparable](err error) *Error[T]
Example
ex := Be[struct{}](New("..."))
switch ex.Code() {
case Unspecified:
	// do something
default:
	// do something
}
Output:

func (Error[T]) Code added in v1.0.4

func (ex Error[T]) Code() T

func (*Error[T]) Error added in v1.0.4

func (ex *Error[T]) Error() string

func (*Error[T]) In added in v1.0.4

func (ex *Error[T]) In(code T) bool

func (*Error[T]) Is added in v1.0.4

func (ex *Error[T]) Is(err error) bool

func (*Error[T]) LogValue added in v1.0.4

func (ex *Error[T]) LogValue() slog.Value

func (*Error[T]) MarshalJSON added in v1.0.4

func (ex *Error[T]) MarshalJSON() ([]byte, error)

func (Error[T]) Stacktrace added in v1.0.4

func (ex Error[T]) Stacktrace() Stack

func (*Error[T]) String added in v1.0.4

func (ex *Error[T]) String() string

func (*Error[T]) Unwrap added in v1.0.4

func (ex *Error[T]) Unwrap() error

type Option added in v1.0.4

type Option[T comparable] struct {
	// contains filtered or unexported fields
}

func Empty added in v1.0.4

func Empty[T comparable](code T) Option[T]

func NaN added in v1.0.4

func NaN[T comparable](code T) Option[T]

func (Option[T]) Code added in v1.0.4

func (ob Option[T]) Code(err error) T

func (Option[T]) Empty added in v1.0.4

func (ob Option[T]) Empty(code T) Option[T]

func (Option[T]) NaN added in v1.0.4

func (ob Option[T]) NaN(code T) Option[T]

type Stack added in v1.0.4

type Stack interface {
	fmt.Stringer
	slog.LogValuer
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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