built-in method
domain_error/2
Description
domain_error(Domain, Culprit)
Throws a domain error. Used when an argument is of the correct type but outside the valid domain. For example, trying to use an atom as an operator specifier that is not a valid specifier. This built-in method is declared private and thus cannot be used as a message to an object. Calling this predicate is equivalent to the following sequence of goals:
...,
context(Context),
throw(error(domain_error(Domain,Culprit), Context)).
This allows the user to generate errors in the same format used by the runtime.
Possible values for Domain
include:
character_code_list
close_option
flag_option
flag_value
compiler_flag
flag
prolog_flag
io_mode
non_empty_list
not_less_than_zero
operator_priority
operator_specifier
read_option
source_sink
stream
stream_option
stream_or_alias
stream_position
stream_property
write_option
character_code_list
text_encoding
directive
object_directive
protocol_directive
category_directive
object_relation
protocol_relation
category_relation
object_property
protocol_property
category_property
predicate_property
meta_argument_specifier
meta_directive_template
closure
allocation
redefinition
message_sending_goal
class
prototype
scope
boolean
The value of Culprit
is the argument or one of its sub-terms that caused
the error.
Modes and number of proofs
domain_error(+atom, @nonvar) - error
Errors
domain_error(Domain, Culprit)
Examples
...,
atom(Color),
\+ color(Color),
domain_error(color, Color).