[#38724] 祝日判定用メソッド — Take_tk <ggb03124@...>

たけ(tk)です

19 messages 2003/11/02

[#38756] ruby-dev summary 21730-21822 /draft — Minero Aoki <aamine@...>

青木です。

14 messages 2003/11/05

[ruby-list:38811] Re: バックトレースの表示指定

From: matz@... (Yukihiro Matsumoto)
Date: 2003-11-19 13:36:14 UTC
List: ruby-list #38811
まつもと ゆきひろです

In message "[ruby-list:38810] バックトレースの表示指定"
    on 03/11/19, "U.Nakamura" <usa@osb.att.ne.jp> writes:

|捕捉されない例外が発生した場合、rubyはバックトレースを吐いて
|くれるわけですが、比較的複雑なスクリプトの場合、バックトレー
|スが長すぎてrubyによって途中を省略されてしまいます。
|
|省略が発生することがあること自体は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

とでもすればいくらでも表示できると思うのですが、それではだめ
ということ?

In This Thread