2006-04-19
          [Ruby]例外が発生したとき END {} 内で場合分けするには
予期せぬ例外でメインの処理が中断したときに END {} 内の処理を場合分けしたくなった。そういえば test/unit ではどうなっているのだろうと調べると、[ruby-list:41927] にちょうどその話しが。
at_exit do
  unless $! || Test::Unit.run?
    exit Test::Unit::AutoRunner.run
  end
end
            なるほど。
気になったので、
begin aaa rescue NameError p $! ensure p $! end p $!
を実行すると、
#<NameError: undefined local variable or method `aaa' for main:Object> nil nil
となる。
__
あれ、この exit なんで呼んでいるんだろう?
exit Test::Unit::AutoRunner.run