我使用的是eventmachine 1.0.0和ruby 1.9.3。现在,当异常发生时,它会被悄悄地忽略。反应堆继续运行,没有任何输出。当然,我没有任何自定义的rescue命令来捕获异常。
这就是我启动反应堆的方式。但我的error_handler从未被调用过..。:-(
EventMachine::run do
EventMachine.error_handler do |e|
$stderr.puts "Exception during event: #{e.message} (#{e.class})"
$stderr.puts (e.backtrace || [])[0..10].join("\n")
end
puts "Starting ftp server on port 21"
EventMachine::start_server("0.0.0.0", 21, self)
end发布于 2013-07-31 11:36:57
看看this thread on error_handler use吧。如果代码中出现异常,则事件循环终止。这可能是error_handler`不被调用的原因。它主要用于将C级错误传递给Ruby。
https://stackoverflow.com/questions/13541984
复制相似问题