Skip to content

An error object that can be set only once and implements context behavior

License

Notifications You must be signed in to change notification settings

randlabs/go-exterror

Repository files navigation

go-exterror

Extended error routines.

AugmentedError

An error object which wraps another one and adds supports for extended fields.

package main

import (
	"errors"

	"github.com/randlabs/go-exterror"
)

func main() {
	err := exterror.NewAugmentedError(
		errors.New("wrapped error"),
		"some example message", map[string]interface{}{
			"value2": 1,
			"value1": "hello",
		},
	)
	
	//...
}

AtomicError

An error object that can be set only once and implements context behavior.

package main

import (
	"errors"

	"github.com/randlabs/go-exterror"
)

func main() {
	err := exterror.NewAtomicError()

	// Set an error in a separate go routine
	go func() {
		err.Set(errors.New("error"))
	}()

	// Wait for the error to be set
	<-err.Done()
}

License

See LICENSE file for details.

About

An error object that can be set only once and implements context behavior

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages