From: matz@... (Yukihiro Matsumoto) Date: 2001-04-04T17:55:02+09:00 Subject: [ruby-dev:12763] NameError (Re: [ruby-list:29101] Re: nil.to_f) まつもと ゆきひろです In message "[ruby-list:29101] Re: nil.to_f" on 01/04/04, Yukihiro Matsumoto writes: ||ところで, 以下のようなスクリプト || ||% cat test.rb || ||while gets || $_ = split || 0.step(2, 1) do |i| || begin || $_[i] = $_[i].to_f || rescue || $_[i] = 0.0 || end || end || STDOUT << "#{$_[0]}\t#{$_[1]}\t#{$_[2]}\n" ||end || ||を実行してみたのですが, | ||tmp3.rb:5: undefined method `to_f' for nil (NameError) || from tmp3.rb:3:in `step' || from tmp3.rb:3 || ||となって rescue されませんでした. 何がまずいのでしょうか. | |NameErrorはデフォルトでは捕捉されないからですね。 TypeErrorはrescueで捕捉できるのにNameErrorは捕捉できないとい うのは一貫性がないような気がして来ました。NameErrorを StandardErrorのサブクラスに戻すことについてどう思いますか? その場合ScriptErrorに残るのはLoadError, SyntaxError, NotImplementedErrorになるわけです。 まつもと ゆきひろ /:|)