# `instantiation_error/0`

## Description

    instantiation_error

Throws an instantiation error. Used when an argument or one of its sub-arguments is a variable but a non-variable term is required. For example, trying to open a file with a variable for the input/output mode.

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 calls:

    ...,
    context(Context),
    throw(error(instantiation_error, Context)).

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

## Modes and number of proofs

    instantiation_error - error

## Errors

When called:
`instantiation_error`

## Examples

    ...,
    var(Handler),
    instantiation_error.

See also

catch/3, throw/1, context/1, uninstantiation_error/1, type_error/2, domain_error/2, existence_error/2, permission_error/3, representation_error/1, evaluation_error/1, resource_error/1, syntax_error/1, system_error/0