Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
This section is somewhat advanced. Unless you are planning to mix Objective-C and C++, you can skip it. Exceptions are implemented with C’s setjmp library. setjmp does not invoke any of the destructors that C++ would invoke for stack-based C++ objects when unwinding the stack. This means that all of the destructors that would have been invoked by functions between the @catch block and the @throw statement are ignored. The implementation of exceptions is straightforward. NSExceptionFrames record the location of each @try block.
typedef struct NSExceptionFrame { jmp_buf state; struct NSExceptionFrame *parent; NSException *exception; } NSExceptionFrame; static NSExceptionFrame* _currentExceptionFrame = nil;