使用Ruby Open3标准库时捕获失败

时间:2018-12-12 12:15:34

标签: ruby

我正在使用Open3.popen2e函数运行外部命令。外部命令在执行中途失败。不幸的是,这也杀死了我使用popen2e的红宝石过程。是什么原因,我该如何避免?

begin
  Open3.popen2e("node mynode.js") do |i, oe|
    oe.each do |ln|
      puts ln.chomp
    end
  end
rescue => exception
  puts exception.message
end

在Ubuntu上使用ruby 2.5.1

1 个答案:

答案 0 :(得分:2)

不确定原因,但可能会引发非StandardError。因此,将救援内容更改为:

rescue Exception => exception

这可能会为您提供有关正在发生的事情的更多线索。