Some conditions are neither errors nor serious conditions. They are signaled
to give other programs a chance to intervene, but if no action is taken,
computation simply continues normally.

For example, an implementation might choose to signal a non-serious (and
implementation-dependent) condition
called end-of-line when output reaches the last character position on a line
of character output. In such an implementation, the signaling of this
condition might allow a convenient way for other programs to intervene,
producing output that is truncated at the end of a line.

By convention, the function signal is used to signal conditions that are not
serious. It would be possible to signal serious conditions using signal, and
the debugger would not be entered if the condition went unhandled. However,
by convention,
handlers will generally tend to assume that serious conditions and errors
were signaled by calling the error function (and will therefore
force entry to the interactive condition handler) and that they should
work to avoid this.