From: "U.Nakamura" Date: 2003-11-19T22:52:27+09:00 Subject: [ruby-list:38812] Re: バックトレースの表示指定 こんにちは、なかむら(う)です。 In message "[ruby-list:38811] Re: バックトレースの表示指定" on Nov.19,2003 22:36:14, wrote: | |省略が発生することがあること自体はOKなのですが、この省略の形 | |式が、例外の発生箇所から8行、中略、トップレベルまで4行、とい | |う形式で固定(eval.cのTRACE_MAX, TRACE_HEAD, TRACE_TAIL)である | |ため、比較的ややこしいスクリプトから比較的ややこしいライブラ | |リを呼び出していて、その内部で例外が発生した場合、 | | ライブラリの中のバックトレースが8行 | | ... n levels ... | | スクリプトのトップレベル付近が4行 | |とだけ出て、肝心要のライブラリ呼び出し部付近がまったく特定で | |きなかったりします。 | | | |というわけで、このバックトレースの表示行数を、固定値ではなく、 | |スクリプトの実行時に指定できるインターフェースが欲しいのですが、 | |いかがでしょう? | | begin | foo | rescue => e | cb = e.backtrace | print cb.shift, ":", e.message, "\n" | cb.each{|c| print "\tfrom ", c, "\n"} | exit 1 | end | | とでもすればいくらでも表示できると思うのですが、それではだめ | ということ? さしあたっては、そのようにしてるんですけど、なんかもっとマシ な書き方ができてしかるべきなんじゃないか、ということです。 「だめということ?」と言われると、「だめってほどでもない」と いう気もしなくはない、かなぁ。 それでは。 -- U.Nakamura よわい