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 throw
s 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 throw
s 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 throw
s
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