Project

General

Profile

« Previous | Next » 

Revision be27f17e

Added by Marc Dequènes over 13 years ago

  • ID be27f17e729f333bb133c4e7138e25a2e9ea12f4

[evol] improve a bit how interface errors are transmitted

View differences:

lib/cyborghood/cyborg/interface.rb
# preliminary incoming message handling
def call(session, cmd, data = nil)
action = find_node_action(session, cmd)
raise "unknown node" if action.nil?
raise CyberError.new(:unrecoverable, 'api/cyborghood', "unknown node") if action.nil?
data ||= []
raise "wrong format for arguments" unless data.is_a? Array
raise CyberError.new(:unrecoverable, 'api/cyborghood', "wrong format for arguments") unless data.is_a? Array
begin
action.call(*data)
rescue
logger.debug "node action error message: " + $!
logger.debug "node action error backtrace: " + $!.backtrace.join("\n")
raise "method call failed: " + $!
raise CyberError.new(:unrecoverable, 'api/cyborghood', "method call failed: " + $!)
end
end
end

Also available in: Unified diff