[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:1048

From: SASADA Koichi <ko1 atdot.net>
Date: Thu, 20 Jul 2006 03:47:23 +0900
Subject: [yarv-dev:1048] Re: open> an error message when wrong number of arguments

 ささだです。

sheepman wrote:
> こんばんは、sheepman です。
> メソッドに間違った数の引数を渡した時のエラーメッセージが
> ruby-1.8 や ruby-1.9 とは違っているので分かりにくいです。

 うーん、これは難しいですね。面白い問題だなあ。

 エラー表示というのは、

ファイル:行数:in `メソッド': エラーメッセージ

となっているため、ここでいう「メソッド」とはエラーが発生した場所を示して
います。で、この場合、foo の呼び出しに失敗しているので「hoge で失敗し
た」というのは正しいんですよねぇ。正確には、「hoge メソッドにおいて、
foo の呼び出しに argument error だった」となるのが正しい。

 どうしたもんですかね。メソッド呼び出し時のエラーには、まずコントロール
スタックフレームを無理やり積んでから、という処理を足してでもこれをサポー
トするべきなのかなぁ。


> $ cat t.rb 
> def foo(a)
> end
> 
> def hoge
>   foo()
> end
> 
> hoge()
> 
> $ ruby-2.0  t.rb
> t.rb:5:in `hoge': wrong number of arguments (0 for 1) (ArgumentError)
>         from t.rb:8:in `<main>'
> 
> $ ruby-1.9  t.rb
> t.rb:5:in `foo': wrong number of arguments (0 for 1) (ArgumentError)
>         from t.rb:5:in `hoge'
>         from t.rb:8
> 
> $ ruby-1.8 t.rb
> t.rb:5:in `foo': wrong number of arguments (0 for 1) (ArgumentError)
>         from t.rb:5:in `hoge'
>         from t.rb:8
> 


-- 
// SASADA Koichi at atdot dot net


--
ML: yarv-dev quickml.atdot.net
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

      1042 2006-07-19 21:59 [sheepman sheepman.sa] open> an error message when wrong number of arguments
->    1048 2006-07-20 03:47 ┗[ko1 atdot.net       ]                                       
      1053 2006-07-20 10:44  ┗[matz ruby-lang.org  ]