ECLiPSe can handle synchronous events ( exceptions) and asynchronous ones ( interrupts). An exception can be a wrong argument type, calling undefined predicate, reading past the file end, etc. When an event occurs, the corresponding event handler is called, which is a user-definable procedure. All built-in predicates raise an event when a nonstandard situation occurs, be it an error or a situation where several actions would be possible and the user has the possibility to influence it by defining an appropriate event handler.
When an interrupt occurs, e.g. a signal, the current execution is interrupted and the signal is handled immediately in real time. This feature can be used to write real-time applications, for example graphics applications which make use of a mouse etc.