Exception: Sndacs::Error::ResponseError

Inherits:
StandardError
  • Object
show all
Defined in:
lib/sndacs/exceptions.rb

Overview

All responses with a code between 300 and 599 that contain an <Error></Error> body are wrapped in an ErrorResponse which contains an Error object. This Error class generates a custom exception with the name of the xml Error and its message. All such runtime generated exception classes descend from ResponseError and contain the ErrorResponse object so that all code that makes a request can rescue ResponseError and get access to the ErrorResponse.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message, response) ⇒ ResponseError

Creates new Sndacs::ResponseError.

Parameters

  • message - what went wrong

  • response - Net::HTTPResponse object or nil



21
22
23
24
# File 'lib/sndacs/exceptions.rb', line 21

def initialize(message, response)
  @response = response
  super(message)
end

Instance Attribute Details

#responseObject (readonly)

Returns the value of attribute response.



14
15
16
# File 'lib/sndacs/exceptions.rb', line 14

def response
  @response
end

Class Method Details

.exception(code) ⇒ Object

Factory for all other Exception classes in module, each for every error response available from SNDA Cloud Storage

Parameters

  • code - Code name of exception

Returns

Descendant of ResponseError suitable for that exception code or ResponseError class if no class found



35
36
37
38
39
# File 'lib/sndacs/exceptions.rb', line 35

def self.exception(code)
  Sndacs::Error.const_get(code)
rescue NameError
  ResponseError
end