From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1997-07-02T08:44:36+09:00 Subject: [ruby-list:3224] Re: Matrix けいじゅ@今はフリー(^^;;;です. 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 <<---