From: Yukihiro Matsumoto Date: 2008-10-18T22:04:08+09:00 Subject: [ruby-dev:36782] Re: exception by throw まつもと ゆきひろです In message "Re: [ruby-dev:36763] Re: exception by throw" on Fri, 17 Oct 2008 19:31:33 +0900, Yukihiro Matsumoto writes: ||ふと気がついたんですが、throw で対応する catch がないときの ||例外が変化しています。 || ||% ./ruby -e 'throw "a"' ||-e:1:in `throw': uncaught throw "a" (ArgumentError) || from -e:1:in `
' || ||% ruby-1.8 -e 'throw "a"' ||-e:1:in `throw': uncaught throw `a' (NameError) || from -e:1 || ||これは意図されたものでしょうか。 | |はい。NameErrorは変数、メソッド、定数が存在しない局面に限定し |ようと思ってのことです。なんらかの互換性問題があれば、再検討 |しますが。 今回の指摘を受けて、改めて考えてみたのですが、catch/throwのラ ベルもNameErrorの対象に含めてまずいことはないので、むやみに 1.8との非互換性を増す必要もないので、ArgumentErrorから NameErrorに戻そうと思います。