The overhead of calling a goal through catch/3
is comparable to
Recovery from an exception is much slower, especially if the exception
term is large due to the copying thereof or is decorated with a stack
trace using, e.g., the library
hook predicate to rewrite exceptions.