Module CErrors
This modules implements basic manipulations of errors for use throughout Coq's code.
Error handling
val push : exn -> Exninfo.iexn
Generic errors.
Anomaly is used for system errors and UserError for the user's ones.
val anomaly : ?loc:Loc.t -> ?info:Exninfo.info -> ?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 Pp.tMain error signaling exception. It carries a header plus a pretty printing doc
val user_err : ?loc:Loc.t -> ?info:Exninfo.info -> Pp.t -> 'aMain error raising primitive.
user_err ?loc ppsignals an errorppwith optional header and locationloc
val register_handler : (exn -> Pp.t option) -> unitval print : 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...
val register_additional_error_info : (Exninfo.info -> Pp.t Loc.located option) -> unitRegister a printer for errors carrying additional information on exceptions. This method is fragile and should be considered deprecated