Ruby:救援代码中的binding.irb:Ctrl-C信号仅工作一次

时间:2018-11-23 12:56:45

标签: ruby exception-handling irb

在没有binding.irb的情况下,以下代码将按预期运行:

count = 0
loop do
  puts count += 1
  sleep 1
rescue Interrupt => e
  puts "interrupted!"
#  binding.irb
  next
end

每次Ctrl-C的笔划都会产生“ interrupted!”行。

与此相反,与行binding.irb相同的代码仅对一次Ctrl-C笔划作出反应:

count = 0
loop do
  puts count += 1
  sleep 1
rescue Interrupt => e
  puts "interrupted!"
  binding.irb
  next
end

退出irb之后,随后的Ctrl-C笔划没有任何效果,甚至没有打印“ interrupted!”行。

为什么?

0 个答案:

没有答案