Prolog features exceptions, which are part of the Prolog ISO standard.
An exception can be thrown with throw/1, and caught with catch/3.
The ISO standard defines many cases in which errors must or may be thrown. The standardized exceptions are all of the form error(E,_), where E indicates the error. Examples are instantiation_error, domain_error and type_error, which see.
An important predicate in connection with exceptions is setup_call_cleanup/3, which see.