operator
true if catch-name has been thrown but has not yet been caught, and false
otherwise. Replacing is with isnt will reverse the results.catch-name (is | isnt) thrown
You can use the is thrown test to determine if a throw is in progress to
catch-name.
catch-name can be any of the following:
#program-error, or
#external-exception.
A compile-time error is produced if catch-name is not declared within the program, nor it is one of the two built-in catches.
Because OmniMark allows multiple throws at the same time, you may not want to produce an additional
throw while another throw is being processed. Using is thrown can avoid having
multiple throws caused by the same error condition.
Actions in an always clause are always executed at the end of a local scope, whether a throw
is in progress or not. A throw within an always clause can leave you with two throws
active at once. If this is inappropriate, you can test as follows:
always do when count > 5000 throw bar unless #external-exception is thrown done