我试图弄清楚如何使EventMachine::Deferrable
回调不引发任何异常。我不是begin ... rescue
在每个回调块中都有,而是试图用方法调用以某种方式包装块,以便该方法挽救异常:
require 'eventmachine'
def to_proc
proc
rescue Exception => e
puts "e=#{e}"
end
EventMachine::run {
d = EventMachine::DefaultDeferrable.new
f = to_proc {raise 'error'}
d.callback &f
EventMachine.next_tick {d.succeed}
}
这当然行不通。我将不胜感激任何帮助。