There shall be a Type Error when the type of an argument or of one of its components is incorrect, but not a variable (which might be an instantiation_error).
ValidType is one of the following:
- atom,
- atomic,
- byte,
- callable,
- character,
- evaluable,
- in_byte,
- in_character,
- integer,
- list,
- number,
- predicate_indicator,
- variable.
Note that the type term is universal in that it includes all types.
domain_error(ValidDomain, Culprit)
There shall be a Domain Error when the type of an argument is correct but the value is outside the domain for which the procedure is defined.
ValidDomain is one of the following:
- character_code_list,
- close_option,
- flag_value,
- io_mode,
- not_empty_list,
- not_less_than_zero,
- operator_priority,
- operator_specifier,
- prolog_flag,
- read_option,
- source_sink,
- stream,
- stream_option,
- stream_or_alias,
- stream_position,
- stream_property,
- write_option.
existence_error(ObjectType, Culprit)
There shall be an Existence Error when the object on which an operation is to be performed does not exist.
ObjectType is one of the following:
- procedure,
- source_sink,
- stream.
permission_error(Operation, PermissionType, Culprit)
There shall be a Permission Error when it is not permitted to perform the specified operation on the given object.
Operation is one of:
- access,
- create,
- input,
- modify,
- open,
- output,
- reposition
and PermissionType is one of
- binary_stream,
- flag,
- operator,
- past_end_of_stream,
- private_procedure,
- static_procedure,
- source_sink,
- stream,
- text_stream.
representation_error(Flag)
There shall be a Representation Error when an implementation defined limit has been breached.In some cases the programmer can determine the allowed value using the built in predicate current_prolog_flag/2
Flag is one of
- character,
- character_code
- in_character_code,
- max_arity,
- max_integer,
- min_integer.
evaluation_error(Error)
There shall be an Evaluation Error when the operands of an evaluable functor has an exceptional value.
Error is one of
- float_overflow,
- int_overflow,
- undefined,
- underflow,
- zero_divisor.
resource_error(Resource)
There shall be a Resource Error at any stage of execution when the processor
has insufficient resources to complete execution. Resource is an implementation defined term.
syntax_error(implementation_dependent_atom)
There shall be a Syntax Error when a sequence of characters which are bing input as a
read_term
system_error
There may be a System Error at any stage of execution.