cosmos-sdk/errors/doc.go
2025-02-14 12:32:53 -05:00

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