From: "K.Kosako" Date: 2001-04-04T19:07:37+09:00 Subject: [ruby-dev:12765] Re: NameError (Re: [ruby-list:29101] Re: nil.to_f) Yukihiro Matsumotoさんの <986374501.898998.25248.nullmailer@ev.netlab.zetabits.com>から > ||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のサブクラスに戻すことについてどう思いますか? 単純なタイプミスの場合が補足されるのは、変な気がします。 nilが、値がないことを表現するために多用される特殊性を考慮して、 nilに対して論理演算子以外のメソッドコールをすることは あまりないと思うので、nilに対して未定義のメソッドコールが 行われた場合だけNameErrorではなく、 NilOperationError < StandardError を返すというのでは、どうでしょうか。 仕様が複雑すぎる、Errorの種類が多くなりすぎる、 あるいは実装が面倒かもしれませんが。 ---- 小迫@ソフネック 渋谷区恵比寿1-15-1