Documentation ¶
Index ¶
- func As(err error, target interface{}) bool
- func E(opt ...Option) error
- func Is(err, target error) bool
- func IsCheckConstraintError(err error) bool
- func IsMissingTableError(err error) bool
- func IsNotFoundError(err error) bool
- func IsNotNullError(err error) bool
- func IsUniqueError(err error) bool
- func Match(t *Template, err error) bool
- func New(c Code, op Op, msg string, opt ...Option) error
- func Wrap(e error, op Op, opt ...Option) error
- type Code
- type Err
- type Info
- type Kind
- type Op
- type Option
- type Options
- type Template
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func As ¶
As is the equivalent of the std errors.As, and allows devs to only import this package for the capability.
func E ¶ added in v0.1.3
E creates a new Err with provided code and supports the options of:
* WithOp() - allows you to specify an optional Op (operation).
* WithMsg() - allows you to specify an optional error msg, if the default msg for the error Code is not sufficient.
* WithWrap() - allows you to specify an error to wrap. If the wrapped error is a boundary domain error, the wrapped error code will be used as the returned error's code.
* WithCode() - allows you to specify an optional Code, this code will be prioritized over a code used from WithWrap().
func Is ¶
Is the equivalent of the std errors.Is, but allows Devs to only import this package for the capability.
func IsCheckConstraintError ¶
IsCheckConstraintError returns a boolean indicating whether the error is known to report a check constraint violation.
func IsMissingTableError ¶
IsMissingTableError returns a boolean indicating whether the error is known to report a undefined/missing table violation.
func IsNotFoundError ¶ added in v0.1.3
IsNotFoundError returns a boolean indicating whether the error is known to report a not found violation.
func IsNotNullError ¶
IsNotNullError returns a boolean indicating whether the error is known to report a not-null constraint violation.
func IsUniqueError ¶
IsUniqueError returns a boolean indicating whether the error is known to report a unique constraint violation.
func Match ¶
Match the template against the error. The error must be of type *Err, or wrap an error of type *Err, otherwise match will return false. Matches all non-empty fields of the template against the error.
func New ¶
New creates a new Err with provided code, op and msg It supports the options of:
* WithWrap() - allows you to specify an error to wrap
Types ¶
type Code ¶
type Code uint32
Code specifies a code for the error.
const ( Unknown Code = 0 // Unknown will be equal to a zero value for Codes // General function errors are reserved Codes 100-999 InvalidParameter Code = 100 // InvalidParameter represents an invalid parameter for an operation. InvalidAddress Code = 101 // InvalidAddress represents an invalid host address for an operation InvalidPublicId Code = 102 // InvalidPublicId represents an invalid public Id for an operation InvalidFieldMask Code = 103 // InvalidFieldMask represents an invalid field mast for an operation EmptyFieldMask Code = 104 // EmptyFieldMask represents an empty field mask for an operation KeyNotFound Code = 105 // KeyNotFound represents that a key/version was not found in the KMS TicketAlreadyRedeemed Code = 106 // TicketAlreadyRedeemed represents that the ticket version has already been redeemed TicketNotFound Code = 107 // TicketNotFound represents that the ticket was not found Io Code = 108 // Io represents that an io error occurred in an underlying call (i.e binary.Write) InvalidTimeStamp Code = 109 // InvalidTimeStamp represents an invalid time stamp for an operation SessionNotFound Code = 110 // SessionNotFound represents that the session was not found InvalidSessionState Code = 111 // InvalidSessionState represents that the session was in an invalid state TokenMismatch Code = 112 // TokenMismatch represents that there was a token mismatch TooShort Code = 113 // TooShort represents an error that means the provided input is not meeting minimum length requirements AccountAlreadyAssociated Code = 114 // AccountAlreadyAssociated represents an attempt to associate an account failed since it was already associated. AuthAttemptExpired Code = 198 // AuthAttemptExpired represents an expired authentication attempt AuthMethodInactive Code = 199 // AuthMethodInactive represents an error that means the auth method is not active. // PasswordTooShort results from attempting to set a password which is to short. PasswordTooShort Code = 200 // PasswordUnsupportedConfiguration results from attempting to perform an // operation that sets a password configuration to an unsupported type. PasswordUnsupportedConfiguration Code = 201 // PasswordInvalidConfiguration results from attempting to perform an // operation that sets a valid password configuration with invalid settings. PasswordInvalidConfiguration Code = 202 // PasswordsEqual is returned from ChangePassword when the old and // new passwords are equal. PasswordsEqual Code = 203 Encrypt Code = 300 // Encrypt represents an error occurred during the underlying encryption process Decrypt Code = 301 // Decrypt represents an error occurred during the underlying decryption process Encode Code = 302 // Encode represents an error occurred during the underlying encoding/marshaling process Decode Code = 303 // Decode represents an error occurred during the underlying decoding/unmarshaling process GenKey Code = 304 // GenKey represents an error occurred during the underlying key generation process GenCert Code = 305 // GenCert represents an error occurred during the underlying certificate generation process // General system errors are reserved Codes 400-599 and align with http client and server error codes Forbidden Code = 403 // Forbidden represents the operation is forbidden Internal Code = 500 // InternalError represents the system encountered an unexpected condition. // DB errors are reserved Codes from 1000-1999 CheckConstraint Code = 1000 // CheckConstraint represents a check constraint error NotNull Code = 1001 // NotNull represents a value must not be null error NotUnique Code = 1002 // NotUnique represents a value must be unique error NotSpecificIntegrity Code = 1003 // NotSpecificIntegrity represents an integrity error that has no specific domain error code MissingTable Code = 1004 // MissingTable represents an undefined table error RecordNotFound Code = 1100 // RecordNotFound represents that a record/row was not found matching the criteria MultipleRecords Code = 1101 // MultipleRecords represents that multiple records/rows were found matching the criteria ColumnNotFound Code = 1102 // ColumnNotFound represent that a column was not found in the underlying db MaxRetries Code = 1103 // MaxRetries represent that a db Tx hit max retires allowed Exception Code = 1104 // Exception represent that an underlying db exception was raised VersionMismatch Code = 1105 // VersionMismatch represents the update version and the db version for an entry do not match. // Migration setup errors are codes 2000-2999 MigrationIntegrity Code = 2000 // MigrationIntegrity represents an error with the generated migration related code MigrationLock Code = 2001 // MigrationLock represents an error related to locking of the DB Unavailable Code = 3000 // Unavailable represents that an external system is unavailable )
type Err ¶
type Err struct { // Code is the error's code, which can be used to get the error's // errorCodeInfo, which contains the error's Kind and Message Code Code // Msg for the error Msg string // Op represents the operation raising/propagating an error and is optional. // Op should be formatted as "package.func" for functions, while methods should // include the receiver type in parentheses "package.(type).func" Op Op // Wrapped is the error which this Err wraps and will be nil if there's no // error to wrap. Wrapped error }
Err provides the ability to specify a Msg, Op, Code and Wrapped error. We've chosen Err over Error for the identifier to support the easy embedding of Errs. Errs can be embedded without a conflict between the embedded Err and Err.Error().
func Convert ¶
Convert will convert the error to a Boundary *Err (returning it as an error) and attempt to add a helpful error msg as well. If that's not possible, it will return nil
type Info ¶
type Info struct { // Kind specifies the kind of error (unknown, parameter, integrity, etc). Kind Kind // Message provides a default message for the error code Message string }
Info contains details of the specific error code
type Option ¶
type Option func(*Options)
Option - how Options are passed as arguments.
func WithCode ¶ added in v0.1.3
WithCode provides an option to provide a code when creating a new error.
type Options ¶
type Options struct {
// contains filtered or unexported fields
}
Options - how Options are represented.
type Template ¶
type Template struct { Err // Err embedded to support matching Errs Kind Kind // Kind allows explicit matching on a Template without a Code. }
Template is useful constructing Match Err templates. Templates allow you to match Errs without specifying a Code. In other words, just Match using the Errs: Kind, Op, etc.
func T ¶
func T(args ...interface{}) *Template
T creates a new Template for matching Errs. Invalid parameters are ignored. If more than is one parameter for a given type, only the last one is used.