Module: Aws::Errors::DynamicErrors Private
- Included in:
- SSO::Errors, SSOOIDC::Errors, 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.
339 340 341 342 |
# File 'lib/aws-sdk-core/errors.rb', line 339 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.
344 345 346 |
# File 'lib/aws-sdk-core/errors.rb', line 344 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>
355 356 357 358 359 360 361 362 363 364 365 366 |
# File 'lib/aws-sdk-core/errors.rb', line 355 def error_class(error_code) constant = error_class_constant(error_code) if error_const_set?(constant) # modeled error class exist # set code attribute err_class = const_get(constant) err_class.code = constant.to_s err_class else set_error_constant(constant) end end |