Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

errors with stacktraces for go

License

NotificationsYou must be signed in to change notification settings

go-errors/errors

Repository files navigation

Build Status

Package errors adds stacktrace support to errors in go.

This is particularly useful when you want to understand the state of executionwhen an error was returned unexpectedly.

It provides the type *Error which implements the standard golang errorinterface, so you can use this library interchangeably with code that isexpecting a normal error return.

Usage

Full documentation is available ongodoc, but here's a simpleexample:

package crashyimport"github.com/go-errors/errors"varCrashed=errors.Errorf("oh dear")funcCrash()error {returnerrors.New(Crashed)}

This can be called as follows:

package mainimport ("crashy""fmt""github.com/go-errors/errors")funcmain() {err:=crashy.Crash()iferr!=nil {iferrors.Is(err,crashy.Crashed) {fmt.Println(err.(*errors.Error).ErrorStack())        }else {panic(err)        }    }}

Meta-fu

This package was original written to allow reporting toBugsnag frombugsnag-go, but after I found similarpackages by Facebook and Dropbox, it was moved to one canonical location soeveryone can benefit.

This package is licensed under the MIT license, see LICENSE.MIT for details.

Changelog

  • v1.1.0 updated to use go1.13's standard-library errors.Is method instead of == in errors.Is
  • v1.2.0 addederrors.As from the standard library.
  • v1.3.0BREAKING updated error methods to returnerror instead of*Error.

Code that needs access to the underlying*Error can use the new errors.AsError(e)

  // before  errors.New(err).ErrorStack()  // after.  errors.AsError(errors.Wrap(err)).ErrorStack()
  • v1.4.0BREAKING v1.4.0 reverted all changes from v1.3.0 and is identical to v1.2.0
  • v1.4.1 no code change, but now without an unnecessary cover.out file.
  • v1.4.2 performance improvement to ErrorStack() to avoid unnecessary work#40
  • v1.5.0 add errors.Join() and errors.Unwrap() copying the stdlib#40
  • v1.5.1 fix build on go1.13..go1.19 (broken by adding Join and Unwrap with wrong build constraints)

[8]ページ先頭

©2009-2025 Movatter.jp