Originally Posted by
CornedBee
Yes, that part is required by the standard. By the time the catch handler is entered, the stack must have been unwound.
Not all computers have hardware support for the stack. On such systems, a language like C++ might emulate this by some other means. And a different language might emulate it differently. If you then add calls back and forth between the two languages, the stack will look strange, and it won't really be possible to trace execution through it.
You have to remember that C and C++ were designed to be implementable on very esoteric systems. Thus, in many cases the exact behaviour is left to the implementation even when it seems completely obvious how it's to be done.