[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
block/tagbody and catch/throw
There is no language-level interaction between catch and throw and
the lexical control mechanisms. To someone who understands lexical
scoping, RETURN and GO do "what one might expect." The tag or block
referred to is the one lexically apparent at the point of the GO or
RETURN.
People more familiar with dynamic scoping "may be surprised",
since the lexically apparent tag or block is not necessarly the
dynamically innermost one.
GO and RETURN sometimes need to remove crap from the stack in most
implementations. This may involve undoing special bindings and
"breaking up catchers." This is a feature of the implementation, not
the language.
Rob