|
foo(X) :-
|
|
\+ integer(X),
|
|
throw(b('not even an int')).
|
|
foo(X) :-
|
|
\+ between(1,10,X),
|
|
throw(a('must be between 1 & 10')).
|
|
foo(X) :-
|
|
format('~p is a valid number~n', X).
|
|
|
|
go(X) :-
|
|
catch(
|
|
foo(X),
|
|
E,
|
|
handle(E)).
|
|
|
|
handle(a(Msg)) :-
|
|
format('~w~n', Msg),
|
|
!.
|
|
handle(X) :- throw(X).
|