From: "K.Kosako" Date: 2001-04-06T13:58:18+09:00 Subject: [ruby-dev:12787] Re: NameError (Re: [ruby-list:29101] Re: nil.to_f) Yukihiro Matsumotoさんの <986394513.752025.26291.nullmailer@ev.netlab.zetabits.com>から > |単純なタイプミスの場合が補足されるのは、変な気がします。 > > もちろんNameErrorはタイプミスが原因ではないかと思って、 > ScriptErrorのサブクラスにしたわけですが、実際問題 > たとえば > > a.foobar > > が、foobarの部分のタイプミスなのか、aの型が間違っている > TypeErrorに相当するものなのかは判定できないと思います。 そうでした。判定できませんね。 ヒープ空間の全オブジェクトのメソッドテーブルの中に 識別子が登録されているかどうか調べるぐらいしか、方法がなさそう。 判定できないということは、まつもとさんの指摘された、 "レシーバが省略された形式"を除いては、NameErrorを返さずに TypeError(もしくはNameOrTypeError)を返すほうが妥当なのかな? 未定義の定数参照までは、捕捉されたくないでしょうから。 ---- 小迫@ソフネック 渋谷区恵比寿1-15-1