| Class | SOAP::Mapping::SOAPException |
| In: |
lib/soap/mapping/registry.rb
|
| Parent: | Object |
| cause | [R] | |
| excn_type_name | [R] |
# File lib/soap/mapping/registry.rb, line 38
38: def initialize(e)
39: @excn_type_name = Mapping.name2elename(e.class.to_s)
40: @cause = e
41: end
# File lib/soap/mapping/registry.rb, line 43
43: def to_e
44: if @cause.is_a?(::Exception)
45: @cause.extend(::SOAP::Mapping::MappedException)
46: return @cause
47: elsif @cause.respond_to?(:message) and @cause.respond_to?(:backtrace)
48: e = RuntimeError.new(@cause.message)
49: e.set_backtrace(@cause.backtrace)
50: return e
51: end
52: klass = Mapping.class_from_name(Mapping.elename2name(@excn_type_name.to_s))
53: if klass.nil? or not klass <= ::Exception
54: return RuntimeError.new(@cause.inspect)
55: end
56: obj = klass.new(@cause.message)
57: obj.extend(::SOAP::Mapping::MappedException)
58: obj
59: end