| snatches errors generated during the execution of a goal.
catch(+Goal, ?CatchMask, ?RecoverGoal)
catch/3 snatches errors which are unifiable by CatchMask
and generated during the execution of Goal, stops the execution
of Goal and executes RecoverGoal. An error can be generated
either in the program (see throw/1) or by
the processor.
Arguments
Goal goal
CatchMask term
RecoverGoal goal
Examples
| X=throw(write('ok')), catch(X,Y,write('error')). |
Succeeds with substitution X <- throw(write(ok)), Y <- write(ok)
and executes write(error). |
| X=write(ok), catch(X,Y,write(error)). |
Succeeds with substitution X <- write(ok), Y <- _735 and executes
write(ok) |
Standard
This predicate is part of the ISO-Prolog Standard.
See also
abort/0,
break/0,
call/1,
fcall/1,
','(conjunction)/2,
'!'(cut)/0,
';'(disjunction)/2,
fail/0,
true/0,
halt/0/1,
'->'(if-then)/2,
';'(if-then-else)/2,
'\+'(not provable)/1,
once/1,
repeat/0,
throw/1.
|