Bug #732
closed$! in at_exit
Description
=begin
遠藤です。
at_exit の中で $! が参照できません。
$ ruby19 -ve 'at_exit { p $! }; raise "foo"'
ruby 1.9.0 (2008-11-09 revision 20163) [i686-linux]
nil
-e:1:in `': foo (RuntimeError)
スタックトレースを自分で整形して表示したいときに、1.8 の挙動の方が
便利です。
また、同じ動機で、$! = nil もやっぱり許可して欲しいです。
ちなみに、at_exit の中で raise すると本体が投げた例外を再度投げます
(投げるように見えます) 。これは不自然だと思います。
$ ruby19 -ve 'at_exit { raise }; foo'
ruby 1.9.0 (2008-11-09 revision 20163) [i686-linux]
-e:1:in <main>': undefined local variable or method
foo' for
main:Object (NameError)
-e:1:in <main>': undefined local variable or method
foo' for
main:Object (NameError)
--
Yusuke ENDOH mame@tsg.ne.jp
=end
Updated by ko1 (Koichi Sasada) almost 16 years ago
- Assignee set to matz (Yukihiro Matsumoto)
=begin
=end
Updated by yugui (Yuki Sonoda) almost 16 years ago
- Assignee changed from matz (Yukihiro Matsumoto) to ko1 (Koichi Sasada)
- Priority changed from 3 to 5
- Target version set to 1.9.1 Release Candidate
=begin
=end
Updated by ko1 (Koichi Sasada) almost 16 years ago
=begin
ささだです.
Yusuke ENDOH wrote::
at_exit の中で $! が参照できません。
$ ruby19 -ve 'at_exit { p $! }; raise "foo"'
ruby 1.9.0 (2008-11-09 revision 20163) [i686-linux]
nil
-e:1:in `': foo (RuntimeError)スタックトレースを自分で整形して表示したいときに、1.8 の挙動の方が
便利です。
また、同じ動機で、$! = nil もやっぱり許可して欲しいです。
これ,先日の開発者ミーティングのメモを見たんですが,
- Bug #732 [ruby-dev:37046]:
- (1) 参照はできるようにする
- (2) nil にする -> 優先度は低い.at_exit より前につぶすべき
となってました.とりあえず $! で見えるようにするのが急務ですかねぇ.代入
は出来るようにするかはわかりません.
ちなみに、at_exit の中で raise すると本体が投げた例外を再度投げます
(投げるように見えます) 。これは不自然だと思います。$ ruby19 -ve 'at_exit { raise }; foo'
ruby 1.9.0 (2008-11-09 revision 20163) [i686-linux]
-e:1:in<main>': undefined local variable or method
foo' for
main:Object (NameError)
-e:1:in<main>': undefined local variable or method
foo' for
main:Object (NameError)
こっちは議論してなかったような気がしますが,これはあからさまに変だ
なぁ,と思うのでなおします.
--
// SASADA Koichi at atdot dot net
=end
Updated by ko1 (Koichi Sasada) almost 16 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
=begin
Applied in changeset r21086.
=end