// 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