Module: Aws::Errors::DynamicErrors Private
- Defined in:
- lib/aws-sdk-core/errors.rb
Overview
This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.
This module is mixed into another module, providing dynamic error classes. Error classes all inherit from ServiceError.
# creates and returns the class
Aws::S3::Errors::MyNewErrorClass
Since the complete list of possible AWS errors returned by services is not known, this allows us to create them as needed. This also allows users to rescue errors by class without them being concrete classes beforehand.
Class Method Summary collapse
- .extended(submodule) ⇒ Object private
Instance Method Summary collapse
- #const_missing(constant) ⇒ Object private
-
#error_class(error_code) ⇒ Object
private
Given the name of a service and an error code, this method returns an error class (that extends ServiceError.
Class Method Details
.extended(submodule) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
121 122 123 124 |
# File 'lib/aws-sdk-core/errors.rb', line 121 def self.extended(submodule) submodule.instance_variable_set("@const_set_mutex", Mutex.new) submodule.const_set(:ServiceError, Class.new(ServiceError)) end |
Instance Method Details
#const_missing(constant) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
126 127 128 |
# File 'lib/aws-sdk-core/errors.rb', line 126 def const_missing(constant) set_error_constant(constant) end |
#error_class(error_code) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Given the name of a service and an error code, this method returns an error class (that extends ServiceError.
Aws::S3::Errors.error_class('NoSuchBucket').new
#=> #<Aws::S3::Errors::NoSuchBucket>
137 138 139 140 141 142 143 144 |
# File 'lib/aws-sdk-core/errors.rb', line 137 def error_class(error_code) constant = error_class_constant(error_code) if error_const_set?(constant) const_get(constant) else set_error_constant(constant) end end |