32 lines
1.3 KiB
Go
32 lines
1.3 KiB
Go
// Package errors implements custom error interfaces for cosmos-sdk.
|
|
//
|
|
// Error declarations should be generic and cover broad range of cases. Each
|
|
// returned error instance can wrap a generic error declaration to provide more
|
|
// details.
|
|
//
|
|
// This package provides a broad range of errors declared that fits all common
|
|
// cases. If an error is very specific for an extension it can be registered outside
|
|
// of the errors package. If it will be needed my many extensions, please consider
|
|
// registering it in the errors package. To create a new error instance use Register
|
|
// function. You must provide a unique, non-zero error code and a short description, for example:
|
|
//
|
|
// var ErrZeroDivision = errors.Register(9241, "zero division")
|
|
//
|
|
// When returning an error, you can attach to it an additional context
|
|
// information by using Wrap function, for example:
|
|
//
|
|
// func safeDiv(val, div int) (int, err) {
|
|
// if div == 0 {
|
|
// return 0, errors.Wrapf(ErrZeroDivision, "cannot divide %d", val)
|
|
// }
|
|
// return val / div, nil
|
|
// }
|
|
//
|
|
// The first time an error instance is wrapped a stacktrace is attached as well.
|
|
// Stacktrace information can be printed using %+v and %v formats.
|
|
//
|
|
// %s is just the error message
|
|
// %+v is the full stack trace
|
|
// %v appends a compressed [filename:line] where the error was created
|
|
package errors
|