Module CErrors
This modules implements basic manipulations of errors for use throughout Coq's code.
Error handling
val push : exn -> Exninfo.iexnAlias for
Backtrace.add_backtrace.
Generic errors.
Anomaly is used for system errors and UserError for the user's ones.
val make_anomaly : ?label:string -> Pp.t -> exnCreate an anomaly.
val anomaly : ?loc:Loc.t -> ?label:string -> Pp.t -> 'aRaise an anomaly, with an optional location and an optional label identifying the anomaly.
val is_anomaly : exn -> boolCheck whether a given exception is an anomaly. This is mostly provided for compatibility. Please avoid doing specific tricks with anomalies thanks to it. See rather
noncriticalbelow.
exceptionUserError of string option * Pp.tMain error signaling exception. It carries a header plus a pretty printing doc
val user_err : ?loc:Loc.t -> ?hdr:string -> Pp.t -> 'aMain error raising primitive.
user_err ?loc ?hdr ppsignals an errorppwith optional header and locationhdrloc
exceptionAlreadyDeclared of Pp.t
val register_handler : (exn -> Pp.t) -> unitval print : ?info:Exninfo.info -> exn -> Pp.tThe standard exception printer
val iprint : Exninfo.iexn -> Pp.tval print_no_report : exn -> Pp.tSame as
print, except that the "Please report" part of an anomaly isn't printed (used in Ltac debugging).
val iprint_no_report : Exninfo.iexn -> Pp.tval noncritical : exn -> boolCritical exceptions should not be caught and ignored by mistake by inner functions during a
vernacinterp. They should be handled only inToplevel.do_vernac(or Ideslave), to be displayed to the user. Typical example:Sys.Break,Assert_failure,Anomaly...