Documentation
¶
Overview ¶
Package errors.
This package can be used as drop-in replacement for standard errors package.
This package provide StackTrace function to get the stack trace.
Stack trace can be attached to any error by passing it to Trace function.
New, NewWithCause, and Errorf function will return error that have stack trace.
Example ¶
package main import ( "fmt" "os" "github.com/payfazz/go-errors/v2" ) func readFile() (string, error) { data, err := os.ReadFile("InvalidFile.txt") if err != nil { return "", errors.Trace(err) } return string(data), nil } func doSomething() error { data, err := readFile() if err != nil { return errors.Trace(err) } fmt.Println(data) return nil } func main() { if err := errors.Catch(doSomething); err != nil { for _, loc := range errors.StackTrace(err) { fmt.Fprintln(os.Stderr, loc.String()) } } }
Output:
Index ¶
- func As(err error, target interface{}) bool
- func Catch(f func() error) (err error)
- func Errorf(format string, a ...interface{}) error
- func Format(err error) string
- func FormatWithFilter(err error, filter func(trace.Location) bool) string
- func FormatWithFilterPkgs(err error, pkgs ...string) string
- func Go(report func(error), f func() error)
- func Is(err, target error) bool
- func New(text string) error
- func NewWithCause(text string, cause error) error
- func ParentStackTrace(err error) []trace.Location
- func StackTrace(err error) []trace.Location
- func Trace(err error) error
- func Unwrap(err error) error
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Catch ¶ added in v2.0.2
run f, if f panic or returned, that value will be returned by this function
func Format ¶
Format representation of the Error, including stack trace.
Use err.Error() if you want to get just the error string
func FormatWithFilter ¶ added in v2.0.8
like Format, but you can filter what location to include in the formated string
func FormatWithFilterPkgs ¶ added in v2.0.11
like Format, but you can filter pkg location to include in the formated string
func Go ¶ added in v2.0.2
Spawn go routine
run f in that go routine, if f panic or returned, that value will be passed to report function,
nil WILL be reported to report function if no error occured to indicate that f is finished
the non-nil reported error will return non-nil when passed to ParentStackTrace
func NewWithCause ¶
like New, but you can specify the cause error
func ParentStackTrace ¶ added in v2.0.1
Get parent goroutine stack trace of err
return nil if err doesn't have stack trace
parent goroutine stack trace only available if the goroutine create by Go function
Types ¶
This section is empty.