Documentation ¶
Overview ¶
Package awserr represents API error interface accessors for the SDK.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SprintError ¶
SprintError returns a string of the formatted error code.
Both extra and origErr are optional. If they are included their lines will be added, but if they are not included their lines will be ignored.
Types ¶
type BatchError
deprecated
added in
v1.2.0
type BatchError interface { // Satisfy the generic error interface. error // Returns the short phrase depicting the classification of the error. Code() string // Returns the error details message. Message() string // Returns the original error if one was set. Nil is returned if not set. OrigErrs() []error }
BatchError is a batch of errors which also wraps lower level errors with code, message, and original errors. Calling Error() will include all errors that occurred in the batch.
Deprecated: Replaced with BatchedErrors. Only defined for backwards compatibility.
type BatchedErrors ¶
type BatchedErrors interface { // Satisfy the base Error interface. Error // Returns the original error if one was set. Nil is returned if not set. OrigErrs() []error }
BatchedErrors is a batch of errors which also wraps lower level errors with code, message, and original errors. Calling Error() will include all errors that occurred in the batch.
Replaces BatchError
func NewBatchError ¶
func NewBatchError(code, message string, errs []error) BatchedErrors
NewBatchError returns an BatchedErrors with a collection of errors as an array of errors.
type Error ¶
type Error interface { // Satisfy the generic error interface. error // Returns the short phrase depicting the classification of the error. Code() string // Returns the error details message. Message() string // Returns the original error if one was set. Nil is returned if not set. OrigErr() error }
An Error wraps lower level errors with code, message and an original error. The underlying concrete error type may also satisfy other interfaces which can be to used to obtain more specific information about the error.
Calling Error() or String() will always include the full information about an error based on its underlying type.
Example:
output, err := s3manage.Upload(svc, input, opts) if err != nil { if awsErr, ok := err.(awserr.Error); ok { // Get error details log.Println("Error:", awsErr.Code(), awsErr.Message()) // Prints out full error message, including original error if there was one. log.Println("Error:", awsErr.Error()) // Get original error if origErr := awsErr.OrigErr(); origErr != nil { // operate on original error. } } else { fmt.Println(err.Error()) } }
type RequestFailure ¶
type RequestFailure interface { Error // The status code of the HTTP response. StatusCode() int // The request ID returned by the service for a request failure. This will // be empty if no request ID is available such as the request failed due // to a connection error. RequestID() string }
A RequestFailure is an interface to extract request failure information from an Error such as the request ID of the failed request returned by a service. RequestFailures may not always have a requestID value if the request failed prior to reaching the service such as a connection error.
Example:
output, err := s3manage.Upload(svc, input, opts) if err != nil { if reqerr, ok := err.(RequestFailure); ok { log.Println("Request failed", reqerr.Code(), reqerr.Message(), reqerr.RequestID()) } else { log.Println("Error:", err.Error()) } }
Combined with awserr.Error:
output, err := s3manage.Upload(svc, input, opts) if err != nil { if awsErr, ok := err.(awserr.Error); ok { // Generic AWS Error with Code, Message, and original error (if any) fmt.Println(awsErr.Code(), awsErr.Message(), awsErr.OrigErr()) if reqErr, ok := err.(awserr.RequestFailure); ok { // A service error occurred fmt.Println(reqErr.StatusCode(), reqErr.RequestID()) } } else { fmt.Println(err.Error()) } }
func NewRequestFailure ¶
func NewRequestFailure(err Error, statusCode int, reqID string) RequestFailure
NewRequestFailure returns a wrapped error with additional information for request status code, and service requestID.
Should be used to wrap all request which involve service requests. Even if the request failed without a service response, but had an HTTP status code that may be meaningful.
type UnmarshalError ¶ added in v1.2.0
type UnmarshalError interface { Bytes() []byte // contains filtered or unexported methods }
UnmarshalError provides the interface for the SDK failing to unmarshal data.
func NewUnmarshalError ¶ added in v1.2.0
func NewUnmarshalError(err error, msg string, bytes []byte) UnmarshalError
NewUnmarshalError returns an initialized UnmarshalError error wrapper adding the bytes that fail to unmarshal to the error.