def handle_context(ctx)
      catch :halt do
        run_xpath_handlers ctx, @decorator_handlers.dup, :remove_decorator_handler
        run_xpath_handlers ctx, @handlers.dup, :remove_handler
      end
    rescue => err
      ctx['error'] = err
      run_xpath_handlers ctx, @exception_handlers.dup, :remove_exception_handler
    end
def handle_context(ctx)
      catch :halt do
        run_xpath_handlers ctx, @decorator_handlers.dup, :remove_decorator_handler
        run_xpath_handlers ctx, @handlers.dup, :remove_handler
      end
    rescue => err
      ctx['error'] = err
      run_xpath_handlers ctx, @exception_handlers.dup, :remove_exception_handler
    end
runs all decorator_handlers against the stanza context so that the context has all needed methods
 runs all handlers against the stanza context
 catches all exception (in which case, the context gets passed to all
 exception_handlers)

 an xpath handler can:
 - throw :halt to shortcircuit everything
 - set the context to "done!" to avoid invoking handlers
 - delete_xpath_handler from the history, this is useful in one-time
 handlers such as request/responses