[det]assertion(:Goal)Acts similar to C assert() macro. It has no effect if Goal
succeeds. If Goal fails or throws an exception, the following
steps are taken:
- call prolog:assertion_failed/2.
If prolog:assertion_failed/2
fails, then:
- If this is an interactive toplevel thread, print a message, the
stack-trace, and finally trap the debugger.
- Otherwise, throw
error(assertion_error(Reason, G),_)
where Reason is one of fail or the exception raised.
- Fixed in 9.3.13 (👉09feb97) Avoid message when assertion/1 is interrupted by abort