Documentation
¶
Overview ¶
Package errors provides a way to return detailed information for an RPC request error. The error is normally JSON encoded.
Index ¶
- Variables
- func AsRetryable(err error) error
- func BadRequest(id, format string, a ...any) error
- func Conflict(id, format string, a ...any) error
- func Equal(err1 error, err2 error) bool
- func Forbidden(id, format string, a ...any) error
- func HasCode(err error, code int32) bool
- func InternalServerError(id, format string, a ...any) error
- func IsBadRequest(err error) bool
- func IsConflict(err error) bool
- func IsForbidden(err error) bool
- func IsInternalServerError(err error) bool
- func IsNotFound(err error) bool
- func IsRetryable(err error) bool
- func IsServiceUnavailable(err error) bool
- func IsTimeout(err error) bool
- func IsTooManyRequests(err error) bool
- func IsUnauthorized(err error) bool
- func MethodNotAllowed(id, format string, a ...any) error
- func New(id, detail string, code int32) error
- func NotFound(id, format string, a ...any) error
- func ServiceUnavailable(id, format string, a ...any) error
- func Timeout(id, format string, a ...any) error
- func TooManyRequests(id, format string, a ...any) error
- func Unauthorized(id, format string, a ...any) error
- func Wrap(err error, id string, code int32, detail string) error
- func Wrapf(err error, id string, code int32, format string, a ...any) error
- type Error
- func (*Error) Descriptor() ([]byte, []int)deprecated
- func (e *Error) Error() string
- func (x *Error) GetCode() int32
- func (x *Error) GetDetail() string
- func (x *Error) GetId() string
- func (x *Error) GetStatus() string
- func (*Error) ProtoMessage()
- func (x *Error) ProtoReflect() protoreflect.Message
- func (x *Error) Reset()
- func (x *Error) String() string
- type MultiError
- func (e *MultiError) Append(err ...*Error)
- func (*MultiError) Descriptor() ([]byte, []int)deprecated
- func (e *MultiError) Error() string
- func (x *MultiError) GetErrors() []*Error
- func (e *MultiError) HasErrors() bool
- func (*MultiError) ProtoMessage()
- func (x *MultiError) ProtoReflect() protoreflect.Message
- func (x *MultiError) Reset()
- func (x *MultiError) String() string
- type RetryableError
- type WrappedError
Constants ¶
This section is empty.
Variables ¶
var File_errors_errors_proto protoreflect.FileDescriptor
Functions ¶
func AsRetryable ¶
AsRetryable wraps an error and marks it as retryable. Returns nil if the input error is nil.
func BadRequest ¶
BadRequest generates a 400 error.
func HasCode ¶
HasCode traverses the entire error chain and checks if any *Error has the given code.
func InternalServerError ¶
InternalServerError generates a 500 error.
func IsBadRequest ¶
IsBadRequest checks if the error is a bad request error (400).
func IsConflict ¶
IsConflict checks if the error is a conflict error (409).
func IsForbidden ¶
IsForbidden checks if the error is a forbidden error (403).
func IsInternalServerError ¶
IsInternalServerError checks if the error is an internal server error (500).
func IsNotFound ¶
IsNotFound checks if the error is a not found error (404).
func IsRetryable ¶
IsRetryable checks if an error is retryable. By default, Timeout(408), TooManyRequests(429), and ServiceUnavailable(503) are retryable.
func IsServiceUnavailable ¶
IsServiceUnavailable checks if the error is a service unavailable error (503).
func IsTimeout ¶
IsTimeout checks if the error is a timeout error (408).
func IsTooManyRequests ¶
IsTooManyRequests checks if the error is a too many requests error (429).
func IsUnauthorized ¶
IsUnauthorized checks if the error is an unauthorized error (401).
func MethodNotAllowed ¶
MethodNotAllowed generates a 405 error.
func ServiceUnavailable ¶
ServiceUnavailable generates a 503 error (retryable by default).
func TooManyRequests ¶
TooManyRequests generates a 429 error (retryable by default).
func Unauthorized ¶
Unauthorized generates a 401 error.
func Wrap ¶
Wrap wraps an existing error with microservice error context. Returns nil if the input error is nil.
Types ¶
type Error ¶
type Error struct {
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"`
Detail string `protobuf:"bytes,3,opt,name=detail,proto3" json:"detail,omitempty"`
Status string `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"`
// contains filtered or unexported fields
}
func As ¶
As finds the first error in err's chain that matches *Error.
func Parse ¶
Parse tries to parse a JSON string into an error. If that fails, it will set the given string as the error detail.
func (*Error) ProtoReflect ¶
func (x *Error) ProtoReflect() protoreflect.Message
type MultiError ¶
type MultiError struct {
Errors []*Error `protobuf:"bytes,1,rep,name=errors,proto3" json:"errors,omitempty"`
// contains filtered or unexported fields
}
func NewMultiError ¶
func NewMultiError() *MultiError
func (*MultiError) Append ¶
func (e *MultiError) Append(err ...*Error)
func (*MultiError) Descriptor
deprecated
func (*MultiError) Descriptor() ([]byte, []int)
Deprecated: Use MultiError.ProtoReflect.Descriptor instead.
func (*MultiError) Error ¶
func (e *MultiError) Error() string
func (*MultiError) GetErrors ¶
func (x *MultiError) GetErrors() []*Error
func (*MultiError) HasErrors ¶
func (e *MultiError) HasErrors() bool
func (*MultiError) ProtoMessage ¶
func (*MultiError) ProtoMessage()
func (*MultiError) ProtoReflect ¶
func (x *MultiError) ProtoReflect() protoreflect.Message
func (*MultiError) Reset ¶
func (x *MultiError) Reset()
func (*MultiError) String ¶
func (x *MultiError) String() string
type RetryableError ¶
type RetryableError struct {
Err error
}
RetryableError wraps an error and marks it as retryable.
func (*RetryableError) Error ¶
func (e *RetryableError) Error() string
Error returns the error message.
func (*RetryableError) Unwrap ¶
func (e *RetryableError) Unwrap() error
Unwrap returns the underlying error.
type WrappedError ¶
type WrappedError struct {
// contains filtered or unexported fields
}
WrappedError supports error chain wrapping.
func (*WrappedError) As ¶
func (e *WrappedError) As(target any) bool
As implements the interface for errors.As to find *Error.
func (*WrappedError) Unwrap ¶
func (e *WrappedError) Unwrap() error
Unwrap returns the underlying cause error.
Source Files
¶
- errors.go
- errors.pb.go
- errors.pb.micro.go