Error messages and system messages

When a command fails in URBI, it will send an error message, prefixed by three exclamation marks:

impossible << 1 / 0;
[00224686:impossible] !!! 5.15-19: Division by zero
[00224686:impossible] !!! 5.15-19: EXPR evaluation failed

Note that the tag of the command is used in the error message, which is extremely convenient to know what has failed in a complex program.

Error messages are different from system messages prefixed by three stars, and which usually display information normally outputted or requested by the command. A typical example is echo with a +begin and +end flag:

mytag+begin+end << echo ("hello there!");
[146711:mytag] *** begin
[146711:mytag] *** hello there!
[146711:mytag] *** end