error reports a run time error

## Syntax

                error(message)
                error(message, n)
                error(n, message)

## Arguments

message

  Vector of strings. The error message to be displayed. Each component is displayed on a separate line. Providing an error message translated with `gettext(…)` is a good practice.

n

  integer > 0: numerical identifier ascribed to the error. Default = 10000. While the message is often translated into the current session language, `n` allows to test the error in a language-independent way.

## Description

`error(…)` allows to issue an error. By default `error`

- stops the current execution,
- displays in the console the recursive calling tree leading to the error,
- displays the given error `message`,
- and resumes to the prompt level.

In order to handle the error without stopping the execution, it is possible to catch it by using `try … catch` or `execstr(…,'errcatch')`, and to test it with `lasterror(…)`.

`error(message)` yields an error #10000 (and displays the given `message`).

`error(message, n)` displays the character string contained in `message`. The numerical identifier ascribed to the error is `n`.

See error_table for a list of standard error messages. Most of them are already translated in the 4 main supported languages.

## Examples

    function test(a)
        if argn(2)~=1
            msg = gettext("%s: Wrong number of input arguments: %d expected.\n")
            error(msprintf(msg, "test", 1))
        end
    endfunction
    function myfun()
        a = 1;
        test()
    endfunction

    // ----------

    error(['A multi line' 'error message'])
    error(500, 'Error: my error message')
    [m, n] = lasterror()

    test()
    myfun()

    --> error(['A multi line' 'error message'])

    A multi line
    error message

    --> error(500, 'Error: my error message')

    Error: my error message

    --> [m, n] = lasterror()
     n  =
       500.
     m  =
     Error: my error message

    --> test()
    at line     4 of function test

    test: Wrong number of input arguments: 1 expected.

    --> myfun()
    at line     4 of function test
    at line     3 of function myfun

    test: Wrong number of input arguments: 1 expected.

## See also

- lasterror
- error_table
- gettext
- warning
- try
- execstr
- where

## History

5.0.0 `error(n, message)` syntax introduced.
5.4.0 The `error` function can take vector of strings as input argument.
6.0.0 The `error(n)` and `error(n, pos)` syntaxes are no longer supported: Providing an explicit error message is now mandatory. There is no longer any absolute error identifier.