From: matz@... (Yukihiro Matsumoto) Date: 2001-04-06T15:47:13+09:00 Subject: [ruby-dev:12789] Re: NameError (Re: [ruby-list:29101] Re: nil.to_f) まつもと ゆきひろです In message "[ruby-dev:12787] Re: NameError (Re: [ruby-list:29101] Re: nil.to_f)" on 01/04/06, "K.Kosako" writes: |> a.foobar |> |> が、foobarの部分のタイプミスなのか、aの型が間違っている |> TypeErrorに相当するものなのかは判定できないと思います。 | |そうでした。判定できませんね。 |ヒープ空間の全オブジェクトのメソッドテーブルの中に |識別子が登録されているかどうか調べるぐらいしか、方法がなさそう。 それでもコストがかかるばかりで十分な判定にはならないでしょう ねえ。 |判定できないということは、まつもとさんの指摘された、 |"レシーバが省略された形式"を除いては、NameErrorを返さずに |TypeError(もしくはNameOrTypeError)を返すほうが妥当なのかな? |未定義の定数参照までは、捕捉されたくないでしょうから。 現在NameErrorになっているものをScriptErrorの下(デフォルトで は捕捉されない)ものと、StandardErrorの下のものとに分類しちゃ うのは良い方法だと思えてきました。まず、どっちがどういう名前 の例外にすればよいと思いますか? そして、どのケースがどちら になれば良いと思いますか? ま、後者は適当に判断できますけど。 まつもと ゆきひろ /:|)