ADDED: variants of errors promoting call_with_error_context/2
A good example of call_with_error_context/2 was recently provided by
@Skgland in d907f86c8d. Many thanks!
This commit is contained in:
@@ -5,8 +5,11 @@
|
|||||||
|
|
||||||
:- module(error, [must_be/2,
|
:- module(error, [must_be/2,
|
||||||
can_be/2,
|
can_be/2,
|
||||||
|
instantiation_error/0,
|
||||||
instantiation_error/1,
|
instantiation_error/1,
|
||||||
|
domain_error/2,
|
||||||
domain_error/3,
|
domain_error/3,
|
||||||
|
type_error/2,
|
||||||
type_error/3,
|
type_error/3,
|
||||||
call_with_error_context/2
|
call_with_error_context/2
|
||||||
]).
|
]).
|
||||||
@@ -215,8 +218,25 @@ list_or_partial_list(Ls) :-
|
|||||||
|
|
||||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
Shorthands for throwing ISO errors.
|
Shorthands for throwing ISO errors.
|
||||||
|
|
||||||
|
The variants without context promote the use of
|
||||||
|
call_with_error_context/2.
|
||||||
|
|
||||||
|
The variants *with* context would not have been needed if
|
||||||
|
call_with_error_context/2 had been found earlier. In the future,
|
||||||
|
we may be able to remove them.
|
||||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||||
|
|
||||||
|
instantiation_error :-
|
||||||
|
throw(error(instantiation_error, [])).
|
||||||
|
|
||||||
|
domain_error(Type, Term) :-
|
||||||
|
throw(error(domain_error(Type, Term), [])).
|
||||||
|
|
||||||
|
type_error(Type, Term) :-
|
||||||
|
throw(error(type_error(Type, Term), [])).
|
||||||
|
|
||||||
|
|
||||||
instantiation_error(Context) :-
|
instantiation_error(Context) :-
|
||||||
throw(error(instantiation_error, Context)).
|
throw(error(instantiation_error, Context)).
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user