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