According to the "Section 3 Summary" for Coursera's "Programming Languages, Part A" course (by Dan Grossman of the University of Washington):
But you have seen one feature that is more like dynamic scope than lexical scope: exception handling. When an exception is raised, evaluation has to “look up” which handle expression should be evaluated. This “look up” is done using the dynamic call stack, with no regard for the lexical structure of the program.
I think the writer is talking about Standard ML, but C++ seems also to do the same thing. Do all languages do "exception handling" with such dynamic lookups?
AccessDenied