Class: ASIR::EncapsulatedException

Inherits:
Object
  • Object
show all
Includes:
AdditionalData, ObjectResolving
Defined in:
lib/asir/result.rb

Overview

!SLIDE Encapsulated Exception

Encapsulates exceptions raised in the Service.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ObjectResolving

#resolve_object

Methods included from AdditionalData

#[], #[]=, #_additional_data, #additional_data, #additional_data!, #additional_data=, included

Constructor Details

#initialize(exc) ⇒ EncapsulatedException

Returns a new instance of EncapsulatedException.



28
29
30
31
32
33
# File 'lib/asir/result.rb', line 28

def initialize exc
  @exception_class     = exc.class.name
  @exception_message   = exc.message
  # Map backtrace Location objects to Strings to support RBX.
  @exception_backtrace = exc.backtrace.map{|x| x.to_s}
end

Instance Attribute Details

#exception_backtraceObject

Returns the value of attribute exception_backtrace.



26
27
28
# File 'lib/asir/result.rb', line 26

def exception_backtrace
  @exception_backtrace
end

#exception_classObject

Returns the value of attribute exception_class.



26
27
28
# File 'lib/asir/result.rb', line 26

def exception_class
  @exception_class
end

#exception_messageObject

Returns the value of attribute exception_message.



26
27
28
# File 'lib/asir/result.rb', line 26

def exception_message
  @exception_message
end

Instance Method Details

#construct!Object



39
40
41
42
43
# File 'lib/asir/result.rb', line 39

def construct!
  invoke!
rescue ::Exception => exc
  exc
end

#invoke!Object



35
36
37
# File 'lib/asir/result.rb', line 35

def invoke!
  raise resolve_object(@exception_class), @exception_message, @exception_backtrace
end