8
I wanted to gain in-depth understanding of how programming languages implements exception handling and how exactly it works inside the hood. I have try to phrase this in many sub-questions as below.
- What is the mechanism used by programing languages to implement try { } catch { } blocks (under the hood)?
- How exactly stack unwinding works inside?
- What are the key differences between try { } / catch {} implementations between different languages like C++ and Java? Do they offer differ significantly or are they same?
- Is setjump/longjump method of stack rewinding in C is similar to try/throw/catch block?
- Why do people say that "stack unwinding" is costly?
- What exactly is SEH (Structured Exception Handling?)