160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
|
# File 'lib/openc3/io/json_rpc.rb', line 160
def self.from_hash(hash)
begin
split_error_class_name = hash['class'].split("::")
error_class = Object
split_error_class_name.each do |name|
error_class = error_class.const_get(name)
end
rescue
error = OpenC3::JsonDRbUnknownError.new(hash['message'])
error.set_backtrace(hash['backtrace'].concat(caller()))
raise error
end
error = error_class.new(hash['message'])
error.set_backtrace(hash['backtrace'].concat(caller())) if hash['backtrace']
hash['instance_variables'].each do |name, value|
error.instance_variable_set(name.intern, value)
end
error
end
|