Return Statuses

The hierarchy of diagnostics described in Section 3.5 is also used in the shell commands. Each shell command returns a status which can affect further processing.

1cm 1cm Success status is the normal command return status.

1cm 1cm Warning status is returned if some minor problem arose with the execution of the command.

1cm 1cm Error status is returned if a significant problem arises during the execution of the command. However, unlike a severe error, it does not cause termination of the enclosing shellscript.

1cm 1cm Severe error status is returned if a problem arises during the execution of the command that prevents the command from delivering on its ``promise''. A severe error causes FunnelWeb to abort the script (and any stacked scripts) to the interactive level. (However, the tolerate command allows this to be temporarily overridden).

1cm 1cm Fatal error status is returned if a problem arises that is so serious that execution of FunnelWeb cannot continue. A fatal error causes FunnelWeb to abort to the operating system level.

1cm 1cm Assertion error status is never returned. If an assertion error occurs, FunnelWeb bombs out ungracefully to the operating system. Assertion errors should never happen. If they do, then there is a bug in FunnelWeb.

To be precise, the status returned by each command is a vector of numbers being the number of each of the different kinds of diagnostic generated by the command. Usually only one kind of diagnostic is generated. However, the fw command and a few of the other commands can generate more than one kind of diagnostic. These status vectors are summed internally where they may later be accessed using the status command. However, the current diagnostic state evaporates as soon as the next command is encountered.