built-in method

# `type_error/2`

## Description

    type_error(Type, Culprit)

Throws a type error. Used when the type of an argument is incorrect. For example, trying to use a non-callable term as a message. 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(type_error(Type,Culprit), Context)).

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

Possible values for `Type` include all the types defined by the `type` library object and by other libraries such as `os`, `expecteds`, and `optionals`. The value of `Culprit` is the argument or one of its sub-terms that caused the error.

## Modes and number of proofs

    type_error(@nonvar, @term) - error

## Errors

When called:
`type_error(Type, Culprit)`

## Examples

    ...,
    \+ atom(Name),
    type_error(atom, Name).

See also

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