From: Masaki Fukushima Date: 1999-05-26T23:45:53+09:00 Subject: [ruby-dev:7000] IOError in threading 福嶋です。 以下のスクリプトを実行させるとIOErrorが発生しますが、その例外を捕 捉できません。 ################################### Thread.abort_on_exception = false io = IO.popen('cat', 'r') Thread.start { begin io.gets rescue IOError p 'thread rescue' p $! ensure p 'thread ensure' end } begin sleep 1 io.close rescue IOError p 'main rescue' p $! ensure p 'main ensure' end ################################### このスクリプトを実行すると foo.rb:16: stream closed (IOError) と表示されるだけで、rescueやensureの中身が実行されません。 そもそも、どちらのスレッドで例外が発生しているのでしょう? --- 福嶋正機