[ Obsolete | The ECLiPSe Built-In Predicates | Reference Manual | Alphabetic Index ]

# set_error_handler(+Number, ++PredSpec)

Set an error handler PredSpec for the error with number Number.

Number
  Integer.
PredSpec
  Term of the form Atom/Integer.

### This built-in predicate is obsolete!

## Description

Assigns the procedure specified by PredSpec (specified as name/arity) as the error handler for the error whose number is given by Number.

An error handler such as PredSpec can have 3 optional arguments: the 1st argument is the number of the error; the 2nd argument is the culprit (a structure corresponding to the call which caused it); the 3rd is the caller module or a free variable (if the module is unknown). The error handler is free to use less than 3 arguments.

The errors which exist are implementation defined.

### Modes and Determinism

- set_error_handler(+, ++) is det

### Modules

This predicate is sensitive to its module context (tool predicate, see @/2).

### Exceptions

(4) instantiation fault
  Either Number or PredSpec is not instantiated.
(5) type error
  Number is not an integer.
(5) type error
  PredSpec is not of the form Atom/Integer.
(6) out of range
  Number is not a valid error number.
(6) out of range
  PredSpec is of the form Atom/Integer, but the integer is greater than 3.
(60) referring to an undefined procedure
  PredSpec is of the form Atom/Integer, but no such predicate has been defined.

## Examples

    Success:
          [eclipse]: string_list(S,L).
          instantiation fault in string_list(_g50, _g52)
          [eclipse]: get_error_handler(4,M,N).
          M = error_handler/2
          N = sepia_kernel
          yes.
          [eclipse]: set_error_handler(4,true/0), string_list(S,L).
          S = _g56
          L = _g58
          yes.

          [eclipse]: [user].
           a :- write(warning_output, "typo"), fail.
           user compiled 100 bytes in 0.03 seconds
          [eclipse]: set_error_handler(5,a/0).
          yes.
          [eclipse]: atom_length("atom",L).
          typo
          no.

    Error:
          set_error_handler(N,true/0).   (Error 4).
          set_error_handler(5,P).        (Error 4).
          set_error_handler(5.0,true/0). (Error 5).
          set_error_handler(1000,X).     (Error 6).
          set_error_handler(-1,X).       (Error 6).
          set_error_handler(6,a/4).      (Error 6).  % arity > 3.
          set_error_handler(6,t/2).      (Error 60). % no t/2.

## See Also

set_event_handler / 2, get_error_handler / 3