When an exception has been raised, the functions
SP_ERROR. To access the exception term (the argument
of the call to
raise_exception/1), which is asserted when the
exception is raised, the function
SP_exception_term() is used.
As a side-effect, the exception term is retracted, so if
your code wants to pass the exception term back to Prolog,
To raise an exception from a C function called from Prolog, just call
SP_raise_exception(). Upon return, Prolog will detect that an
exception has been raised, any value returned from the function will
be ignored, and the exception will be passed back to Prolog.
To propagate failure to Prolog, call
SP_fail(). Upon return,
Prolog will backtrack.
Prolog error handling is mostly done by raising and catching exceptions.
However, some faults are of a nature such that when they occur,
the internal program state may be corrupted, and it is not safe to
merely raise an exception. In runtime systems, the C
SP_on_fault() provides an environment for handling faults.
SP_raise_fault() can be used to raise a fault with an
encoded string explaining the reason.