From: matz@... (Yukihiro Matsumoto) Date: 2001-04-05T00:00:29+09:00 Subject: [ruby-dev:12767] Re: NameError (Re: [ruby-list:29101] Re: nil.to_f) まつもと ゆきひろです In message "[ruby-dev:12765] Re: NameError (Re: [ruby-list:29101] Re: nil.to_f)" on 01/04/04, "K.Kosako" writes: |> TypeErrorはrescueで捕捉できるのにNameErrorは捕捉できないとい |> うのは一貫性がないような気がして来ました。NameErrorを |> StandardErrorのサブクラスに戻すことについてどう思いますか? | |単純なタイプミスの場合が補足されるのは、変な気がします。 もちろんNameErrorはタイプミスが原因ではないかと思って、 ScriptErrorのサブクラスにしたわけですが、実際問題 たとえば a.foobar が、foobarの部分のタイプミスなのか、aの型が間違っている TypeErrorに相当するものなのかは判定できないと思います。 あ、でも、たとえば、レシーバが省略された形式であればタイプミ スの可能性が高いと言えるでしょうね。分離すべきか。 そして、RubyレベルではTypeErrorは発生しませんから、形が合わ ない場合にはほぼ間違いなくNameErrorが発生することになります。 となると、「TypeErrorは捕捉できるが、NameErrorが捕捉できない のは一貫性がない」のではないかと思います。 これは「nilだから特別」というわけではありません。 まつもと ゆきひろ /:|)