The current block is always searched first for a handler
If the exception handler is NOT found in the current block, enclosing block if any is searched for the exception handler.
If the exception handler is found, then it's executed. Control is passed to the enclosing block if one exists OR to the calling environment if there is no enclosing block.
If the exception handler is NOT found, then exception is returned back to the calling environment