模組 Printexc.Slot

module Slot: sig .. end

type t = Printexc.backtrace_slot 
val is_raise : t -> bool

is_raise slotslot 指的是程式碼中一個拋出異常的點時會是 true,而當它是來自一個簡單的函式呼叫時會是 false

val is_inline : t -> bool

is_inline slotslot 指的是一個被編譯器內聯的呼叫時會是 true,而當它來自任何其他上下文時會是 false

val location : t -> Printexc.location option

location slot 會回傳 slot 的位置資訊,如果有的話,否則回傳 None

無法回傳位置資訊的一些可能原因如下

  • slot 對應到編譯器插入的 raise
  • slot 對應到沒有使用除錯資訊編譯(-g)的程式碼部分
val name : t -> string option

name slot 會回傳包圍 slot 所指位置的函式或定義的名稱。

如果名稱不可用,則 name slot 會回傳 None,這可能發生於與 location 回傳 None 相同的原因。

val format : int -> t -> string option

format pos slot 會回傳 slot 的字串表示形式,如同 raw_backtrace_to_string 會格式化它的方式,假設它是回溯的第 pos 個元素:第 0 個元素的格式化方式與其他元素不同。

整個回溯列印函式也會跳過一些不提供資訊的 slot;在這種情況下,format pos slot 會回傳 None