我正在使用带有ruby 1.9.3的eventmachine 1.0.0。现在当发生异常时,它会被默默地忽略。反应堆继续运行,没有输出。当然,我没有任何可以捕获异常的自定义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
答案 0 :(得分:0)
看看this thread on error_handler
use。如果代码中出现异常,则事件循环终止。这可能是没有调用error_handler`的原因。它主要用于将C级错误传递给Ruby。