Enum aws_sdk_athena::types::SdkError
source · #[non_exhaustive]
pub enum SdkError<E, R = Response> {
ConstructionFailure(ConstructionFailure),
TimeoutError(TimeoutError),
DispatchFailure(DispatchFailure),
ResponseError(ResponseError<R>),
ServiceError(ServiceError<E, R>),
}
Expand description
Failed SDK Result
When logging an error from the SDK, it is recommended that you either wrap the error in
DisplayErrorContext
, use another
error reporter library that visits the error’s cause/source chain, or call
Error::source
for more details about the underlying cause.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
ConstructionFailure(ConstructionFailure)
The request failed during construction. It was not dispatched over the network.
TimeoutError(TimeoutError)
The request failed due to a timeout. The request MAY have been sent and received.
DispatchFailure(DispatchFailure)
The request failed during dispatch. An HTTP response was not received. The request MAY have been sent.
ResponseError(ResponseError<R>)
A response was received but it was not parseable according the the protocol (for example the server hung up while the body was being read)
ServiceError(ServiceError<E, R>)
An error response was received from the service
Implementations§
source§impl<E, R> SdkError<E, R>
impl<E, R> SdkError<E, R>
sourcepub fn construction_failure(
source: impl Into<Box<dyn Error + Send + Sync + 'static, Global>>
) -> SdkError<E, R>
pub fn construction_failure( source: impl Into<Box<dyn Error + Send + Sync + 'static, Global>> ) -> SdkError<E, R>
Construct a SdkError
for a construction failure
sourcepub fn timeout_error(
source: impl Into<Box<dyn Error + Send + Sync + 'static, Global>>
) -> SdkError<E, R>
pub fn timeout_error( source: impl Into<Box<dyn Error + Send + Sync + 'static, Global>> ) -> SdkError<E, R>
Construct a SdkError
for a timeout
sourcepub fn dispatch_failure(source: ConnectorError) -> SdkError<E, R>
pub fn dispatch_failure(source: ConnectorError) -> SdkError<E, R>
Construct a SdkError
for a dispatch failure with a ConnectorError
sourcepub fn response_error(
source: impl Into<Box<dyn Error + Send + Sync + 'static, Global>>,
raw: R
) -> SdkError<E, R>
pub fn response_error( source: impl Into<Box<dyn Error + Send + Sync + 'static, Global>>, raw: R ) -> SdkError<E, R>
Construct a SdkError
for a response error
sourcepub fn service_error(source: E, raw: R) -> SdkError<E, R>
pub fn service_error(source: E, raw: R) -> SdkError<E, R>
Construct a SdkError
for a service failure
sourcepub fn into_service_error(self) -> Ewhere
E: Error + Send + Sync + CreateUnhandledError + 'static,
R: Debug + Send + Sync + 'static,
pub fn into_service_error(self) -> Ewhere E: Error + Send + Sync + CreateUnhandledError + 'static, R: Debug + Send + Sync + 'static,
Returns the underlying service error E
if there is one
If the SdkError
is not a ServiceError
(for example, the error is a network timeout),
then it will be converted into an unhandled variant of E
. This makes it easy to match
on the service’s error response while simultaneously bubbling up transient failures.
For example, handling the NoSuchKey
error for S3’s GetObject
operation may look as
follows:
match sdk_err.into_service_error() {
GetObjectError { kind: GetObjectErrorKind::NoSuchKey(_) } => {
// handle NoSuchKey
}
err @ _ => return Err(err),
}