けいじゅ@今はフリー(^^;;;です. In [ruby-list :03222 ] the message: "[ruby-list:3222] Re: Matrix ", on Jul/01 18:45(+0200) matz / caelum.co.jp (Yukihiro Matsumoto) writes: >そうです. >|e2mmap.rbの当該部分を以下のように変えます. むむ? >うーん, > def fail(err, *rest) > begin > super(err, sprintf(E2MM_ErrorMSG[err], *rest)) > rescue > $@.shift # failを削るならshift > super() > end > end > >ではいけないんですかね(superのうしろの()が大事). げげ. super()ですかあ... 他だ単に, superとは動作が異なっていたんですね!! それに, $@.shift も... >あるいは >failを削るだけならもっと単純なのは > > def fail(err, *rest) > $@ = caller(1) > $! = err.new(sprintf(E2MM_ErrorMSG[err], *rest)) > super() > end > >ですかね. こっちを採用しました. 上の2つのメソッドの動作は同じなんですよね?? >上のコードだと > > 1. 例外を(メッセージを書き換えた上で)発生させる > 2. バックトレースを減らす > >の両方ができているようにみえるんですけど. どうも失礼しました(__;;; __ .........................................石塚 圭樹@今はフリー(^^;;... ------->>また, アドレス変わりました!! e-mail: keiju / bc.mbn.or.jp <<---