From 855fd0a5eacdc52699e3e187fcde1a4895ca5f6a Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Thu, 1 Jul 2021 20:39:58 +0000 Subject: Add standard error predicates --- stdlib.pl | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'stdlib.pl') diff --git a/stdlib.pl b/stdlib.pl index f67a4a4..7c9d189 100644 --- a/stdlib.pl +++ b/stdlib.pl @@ -68,3 +68,32 @@ length([_|Tail], Length) :- member(X, [X|_]). member(X, [_|Tail]) :- member(X, Tail). + +% Standard exceptions + +instantiation_error :- + throw(error(instantiation_error, _)). + +type_error(ValidType, Culprit) :- + throw(error(type_error(ValidType, Culprit), _)). + +domain_error(ValidDomain, Culprit) :- + throw(error(domain_error(ValidDomain, Culprit), _)). + +existence_error(ObjectType, Culprit) :- + throw(error(existence_error(ObjectType, Culprit), _)). + +permission_error(Operation, PermissionType, Culprit) :- + throw(error(permission_error(Operation, PermissionType, Culprit), _)). + +representation_error(Flag) :- + throw(error(representation_error(Flag), _)). + +evaluation_error(Error) :- + throw(error(evaluation_error(Error), _)). + +resource_error(Resource) :- + throw(error(resource_error(Resource), _)). + +syntax_error(Error) :- + throw(error(syntax_error(Error), _)). -- cgit v1.2.3