module Printexc:例外の表示sig..end
val to_string : exn -> stringPrintexc.to_string e は例外 e の文字列表現を返します。val print : ('a -> 'b) -> 'a -> 'bPrintexc.print fn x は fn を x に適用し、その戻り値を返します。
fn x の評価中に何らかの例外が発生した場合には、標準エラー出力に例外の名前を表示し、例外を再送出します。
典型的な使用法は、関数適用を素通りする例外を捕捉して報告することです。val catch : ('a -> 'b) -> 'a -> 'bPrintexc.catch fn x は Printexc.print とほぼ同じですが、例外を表示したあとにプログラムを終了コード 2 で終了させます。
この関数の使用は推奨されません
現在のランタイムシステムは Printexc.catch と同様に捕捉されなかった例外を正確に表示します。
さらに、 Printexc.catch を呼び出すと、デバッガやスタックトレースを使って例外の発生した位置を追跡するのが困難になります。
新しいコードでは Printexc.catch を使わないでください。val print_backtrace : out_channel -> unitPrintexc.print_backtrace oc はバックトレースを出力チャネル oc に表示します。
バックトレースは、直近の例外がどこで発生し、関数呼び出しによりどのように波及してきたのかを列挙します。val get_backtrace : unit -> stringPrintexc.get_backtrace () は、 Printexc.print_backtrace が表示するのと同じバックトレース文字列を返します。val record_backtrace : bool -> unitPrintexc.record_backtrace b は b = true の場合、例外のバックトレースの記録を有効にし、 b = false の場合、無効にします。
OCAMLRUNPARAM 環境変数を介して b フラグを与えなかった場合には、初期状態ではバックトレースは記録されません。val backtrace_status : unit -> boolPrintexc.backtrace_status () は現在バックトレースが記録されていれば true を返し、そうでなければ false を返します。val register_printer : (exn -> string option) -> unitPrintexc.register_printer fn は fn を例外表示関数として登録します。
表示関数は与えられた例外を文字列に変換できない場合には None を返し、変換できる場合には変換結果の文字列 s を Some s として返します。表示関数内で起こった例外は無視されます。
例外を文字列に表示するとき、表示関数は登録された順の逆に、いずれかの関数が Some s なる値を返すまで順に呼び出されます(そのような関数が存在しなかった場合は、ランタイムシステムは汎用の表示関数を使います)。
Since 3.11.2