[157] This
paragraph is based on a 1984 analysis by Henry Spencer. He went on to
note that job control was necessary and appropriate for POSIX.1 and
later Unix standards to consider precisely
because it oozes its way into every program, and
hence has to be thought about in any application-to-system interface.
Hence, POSIX's endorsement of a mis-design, while proper solutions were
“out of scope” and hence were not even
considered.
[159] For nonprogrammers, throwing an
exception is a way for a program to bail out in the middle
of a procedure. It's not quite an exit because the throw can be
intercepted by catcher code in an enclosing procedure. Exceptions are
normally used to signal errors or unexpected conditions that mean it
would be pointless to try to continue normal
processing.