MLtonExn - MLton Standard ML Compiler (SML Compiler)

MLton MLTONWIKIVERSION | MLtonExn |
Home Index

    signature MLTON_EXN =
       sig
          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
       end

- `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`.

Last edited on 2007-08-23 03:43:53 by MatthewFluet.