From: "mame (Yusuke Endoh)" Date: 2012-07-23T22:28:05+09:00 Subject: [ruby-dev:45999] [ruby-trunk - Feature #6639][Rejected] ArgumentError から ArityError を分離 Issue #6639 has been updated by mame (Yusuke Endoh). Status changed from Open to Rejected きしもとさん 7/21 の開発者会議にて、残念ながらこの機能は不採択と判定されました。 これを採択すると他にも細分化の要望が来るであろうことから、 Ruby として「例外を細分化する方針」をとるかどうかで議論が行われました。 しかしまつもとさんからその方針には「不安」があるとのことで、採択しない 方向となりました。 -- Yusuke Endoh ---------------------------------------- Feature #6639: ArgumentError から ArityError を分離 https://bugs.ruby-lang.org/issues/6639#change-28314 Author: metanest (Makoto Kishimoto) Status: Rejected Priority: Low Assignee: Category: Target version: =begin ArgumentError と TypeError の違いがわかりにくい、という話がありました( #6423 )。 違いがわかりにくい原因として、メソッドやブロックの呼び出し時に、次のような感じで、 エラーの発生する場所が混在しているため、という理由が考えられます。 (1) 実引数の個数が正しいかをチェック → ダメなら ArgumentError (2) 実引数の型(期待するメソッドがあるか)をチェック → ダメなら TypeError (3) 実引数の値をチェック → ダメなら ArgumentError ArgumentError のサブクラスとして ArityError を作り (1) のエラーを ArityError に すれば、各エラーの意味が明確化するのではないかと思います。 =end -- http://bugs.ruby-lang.org/