Module: Aws::Errors::DynamicErrors Private
- Included in:
- STS::Errors
- 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.
179 180 181 182 |
# File 'lib/aws-sdk-core/errors.rb', line 179 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.
184 185 186 |
# File 'lib/aws-sdk-core/errors.rb', line 184 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>
195 196 197 198 199 200 201 202 |
# File 'lib/aws-sdk-core/errors.rb', line 195 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 |