ruby - 如何在 eventmachine 中捕获异常

标签 ruby exception eventmachine

我正在使用带有 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/

相关文章:

Ruby 线程和 Websocket

ruby-on-rails - Rails 2.3.8 : How can I change the asset path for my javascripts, 样式表和图像

ruby 在 2 个字符串之间打印选定的文本行

ruby - 了解 [ClassOne, ClassTwo].each(& :my_method)

Python:返回错误而不是抛出错误

ruby-eventmachine 将 start_server 与实例一起使用

ruby-on-rails - Eventmachine 因段错误而失败

javascript - 表单提交后使用ajax在rails中渲染内容

拉拉维尔 : The payload is invalid

ruby - 嵌套异常中的回溯