Extended error routines.
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",
},
)
//...
}
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()
}
See LICENSE
file for details.