signature MLTON_EXN =
      val addExnMessager: (exn -> string option) -> unit
      val history: exn -> string list

      val defaultTopLevelHandler: exn -> 'a
      val getTopLevelHandler: unit -> (exn -> unit)
      val setTopLevelHandler: (exn -> unit) -> unit
      val topLevelHandler: exn -> 'a
  • addExnMessager f

    adds f as a pretty-printer to be used by General.exnMessage for converting exceptions to strings. Messagers are tried in order from most recently added to least recently added.

  • history e

    returns call stack at the point that e was first raised. Each element of the list is a file position. The elements are in reverse chronological order, i.e. the function called last is at the front of the list.

    history e will return [] unless the program is compiled with -const 'Exn.keepHistory true'.

  • defaultTopLevelHandler e

    function that behaves as the default top level handler; that is, print out the unhandled exception message for e and exit.

  • getTopLevelHandler ()

    get the top level handler.

  • setTopLevelHandler f

    set the top level handler to the function f. The function f should not raise an exception or return normally.

  • topLevelHandler e

    behaves as if the top level handler received the exception e.