【发布时间】:2016-01-17 14:41:16
【问题描述】:
我的代码在这里...
require 'thread'
$temp = Thread.new do
loop do
puts 'loop me'
begin
puts "try thread"
raise Exception.new('QwQ') if rand > 0.5
puts "skip try"
rescue
puts "QwQ"
end
sleep(0.5)
end
puts '...WTF'
end
loop do
puts "runner #{Thread.list.length} #{$temp.status}"
sleep(2)
end
如何保持runner 和loop thread 运行?以及如何像这段代码一样修复它?
我试过 Thread.abort_on_exception ,但它会杀死进程...
【问题讨论】:
-
hmm......我尝试将所有
rescue修复为rescue Exception => e会好的,但是为什么!?!? -
好吧...我明白了,ruby
rescue默认是StandardError和StandardError超类是Exception...
标签: ruby multithreading exception