Catch
ISO catch/3: catch(Goal, Catcher, Recovery) :- Goal. -- the body just proves Goal; the actual catch/recovery behaviour is not implemented here but in StateException, which climbs the execution-context stack looking for a currently-executing goal shaped like this one whose Catcher unifies with a raised exception, and if so proves Recovery instead.