built-in shelf
#error
is one of the built-in output stream
s, and the standard error stream for
OmniMark.
#error
always refers to the standard error, also known as stderr
.
If no -log
argument is given on the command line, OmniMark writes all errors and
informative messages to #error
. If an implementation of OmniMark on a particular platform does not
distinguish between standard output and standard error, they are defined as the same destination.
Since #error
is considered domain free by default, neither the domain-free
modifier nor
the z
modifier has any effect on it.
The following code illustrates the use of #error
for reporting errors:
global integer list-count process local integer list-items variable ; ... do when number of list-items != list-count local integer temp put #error "Found a condition that shouldn't have happened:" set temp to number of list-items put #error " list-count = %d(list-count), but list-items has %d(temp) item(s).%n" halt with 2 ; signals an error condition while stopping done
Line breaking rules and translate
rules are never applied to #error
.
On most systems, standard error (and as a result #error
) is unbuffered: that is, text written to it is
immediately output. This can be changed by declaring #error
to be buffered:
declare #error has buffered
#error
can also be declared unbuffered
, although this is the default.
In any program that uses referents
, #error
is treated as if it were opened with
referents-displayed
.