built-in method

existence_error/2

Description

existence_error(Thing, Culprit)

Throws an existence error. Used when the subject of an operation does not exist. 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(existence_error(Thing,Culprit), Context)).

This allows the user to generate errors in the same format used by the runtime.

Possible values for Thing include:

  • predicate

  • non_terminal

  • predicate_declaration

  • procedure

  • source_sink

  • stream

  • object

  • protocol

  • category

  • module

  • ancestor

  • library

  • file

  • directive

  • engine

  • thread

  • goal_thread

The value of Culprit is the argument or one of its sub-terms that caused the error.

Modes and number of proofs

existence_error(@nonvar, @nonvar) - error

Errors

When called:
existence_error(Thing, Culprit)

Examples

...,
\+ current_object(payroll),
existence_error(object, payroll).