Printexc

このページは最後に更新されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

last mod. 2009-09-10 (木) 17:44:30

Chapter 20 標準ライブラリ

module Printexc: sig  end

例外表示機能です。


val to_string : exn -> string

Printexc.to_string e は例外 e を文字列として表記したものを返します

val print : ('a -> 'b) -> 'a -> 'b

Printexc.print fn x は関数 fn に x を適用して、その適用結果を返します。 fn x の評価で何らかの例外が発生したら、その例外の名前を標準エラー出力に表示して、再度同じ例外を発生します。関数適用を抜け出す例外を捕らえて報告するのに使えます。

val catch : ('a -> 'b) -> 'a -> 'b

Printexc.catch fn x は Printexc.print と同じようなものですが、キャッチされなかった例外を表示したあと、プログラムを終了コード 2 で異常終了します。この関数は推奨されません。かつては Printexc.catch でキャッチされなかった例外を表示していましたが、今ではランタイムシステムがサポートしています。さらに、Printexc.catch を呼び出すと、デバッガのスタックバックトラック機能を使って例外の位置を追跡することが困難になります。よって、今後書くコードに Printexc.catch は使用しないでください。

val print_backtrace : out_channel -> unit

Printexc.print_backtrace ocはocに例外のバックトレースを出力します。バックトレースは、例外の発生した位置と伝播した位置を表示します。

val get_backtrace : unit -> string

Printexc.get_backtrace ()はPrintexc.print_backtraceが出力するのと同じ例外バックトレースを含んだ文字列を返します。

val record_backtrace : bool -> unit

Printexc.record_backtrace bはb=trueならば例外バックトレースを有効にします。あるいは、b=falseならば無効にします。初期状態では、OCAMLRUNPARAM変数にbフラグがセットされていないかぎり、有効にされません。

val backtrace_status : unit -> bool

Printexc.backtrace_status()は例外バックトレースが有効ならtrueを返し、そうでないならfalseを返します。

新規 編集 添付