From: Masatoshi SEKI Date: 2005-05-15T20:55:05+09:00 Subject: [ruby-dev:26173] Re: error.c 1.108 咳といいます。 On 2005/05/15, at 13:21, nobu@ruby-lang.org wrote: > なかだです。 > > At Sun, 15 May 2005 12:41:59 +0900, > H.Yamamoto wrote in [ruby-dev:26167]: > >> これは、error.c 1.108 では raise の第二引数も >> initialize に渡るように >> なったためです。たぶん意図された挙動ではないと思います。 >> > > initializeに渡るようになった、というよりも、Exception#exception > がException#initializeを直接呼び出していたのが > cloneのクラスの > initializeを呼ぶようになったから、ですね。どうしたものかな。 まだ開発環境できてないのでシャドープログラミング状態です。とほほ。 変更に追従しようと調査中です。 Exceptionのサブクラスのinitializeは、 Exception#initializeと同じ引数を 受け付けるようにしなくてはならない、ということですか? 例外クラスのインスタンスeでraiseするとき、 raise e, message, bt eがdupされるのですか? それともe.class.new(message)が行われるのですか? ああっ!リファレンスマニュアルによると以下の形式しかありま せんね… raise raise(exception) raise(message) raise(error_type, message [, backtrace]) fail(error_type, message [, backtrace]) すると、raise(exception, message, backtrace)を行っているこ とが誤りという ことかしらん。