我正在使用带有 ruby 1.9.3 的 eventmachine 1.0.0。现在,当异常发生时,它会被默默地忽略。 react 堆继续运行,没有任何输出。当然,我没有任何捕获异常的自定义 rescue
命令。
这就是我启动 react 堆的方式。但是我的 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
最佳答案
看看this thread on error_handler
use .如果您的代码出现异常,事件循环将终止。这可能是 error_handler` 没有被调用的原因。它主要用于将 C 级错误传达给 Ruby。
关于ruby - 如何在 eventmachine 中捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13541984/