package coq-core

  1. Overview
  2. Docs
The Coq Proof Assistant -- Core Binaries and Tools

Install

Dune Dependency

Authors

Maintainers

Sources

coq-8.19.1.tar.gz
md5=13d2793fc6413aac5168822313e4864e
sha512=ec8379df34ba6e72bcf0218c66fef248b0e4c5c436fb3f2d7dd83a2c5f349dd0874a67484fcf9c0df3e5d5937d7ae2b2a79274725595b4b0065a381f70769b42

doc/coq-core.clib/Exninfo/index.html

Module ExninfoSource

Additional information worn by exceptions.

Sourcetype 'a t

Information containing a given type.

Sourcetype info

All information

Sourcetype iexn = exn * info

Information-wearing exceptions

Sourceval make : unit -> 'a t

Create a new piece of information.

Sourceval null : info

No information

Sourceval add : info -> 'a t -> 'a -> info

Add information to an exception.

Sourceval get : info -> 'a t -> 'a option

Get information worn by an exception. Returns None if undefined.

Sourceval info : exn -> info

Retrieve the information of the last exception raised.

Sourcetype backtrace
Sourceval get_backtrace : info -> backtrace option

get_backtrace info does get the backtrace associated to info

Sourceval backtrace_to_string : backtrace -> string

backtrace_to_string info does get the backtrace associated to info

Sourceval record_backtrace : bool -> unit
Sourceval capture : exn -> iexn

Add the current backtrace information to the given exception.

The intended use case is of the form:


try foo
with
| Bar -> bar
| exn ->
  let exn = Exninfo.capture err in
  baz

where baz should re-raise using iraise below.

WARNING: any intermediate code between the with and the handler may modify the backtrace. Yes, that includes when clauses. Ideally, what you should do is something like:


try foo
with exn ->
  let exn = Exninfo.capture exn in
  match err with
  | Bar -> bar
  | err -> baz

I admit that's a bit heavy, but there is not much to do...

Sourceval iraise : iexn -> 'a

Raise the given enriched exception.

Sourceval reify : unit -> info
OCaml

Innovation. Community. Security.