Traps exceptions generated by __parse_single_request and
        converts them into values of request_id and error in the
        returned tuple.

        :Returns: (method_name, params_object, request_id, error)
                Where:
                - method_name is a str (or None when error is set)
                - params_object is one of list/tuple/dict/None
                - request_id is long/int/string/None
                - error is an instance of errors.RPCFault subclass or None

def _parse_single_request_trap_errors(cls, request_data):
        """Traps exceptions generated by __parse_single_request and
        converts them into values of request_id and error in the
        returned tuple.

        :Returns: (method_name, params_object, request_id, error)
                Where:
                - method_name is a str (or None when error is set)
                - params_object is one of list/tuple/dict/None
                - request_id is long/int/string/None
                - error is an instance of errors.RPCFault subclass or None
        """
        try:
            method, params, request_id = cls._parse_single_request(request_data)
            return method, params, request_id, None
        except errors.RPCFault as ex:
            return None, None, ex.request_id, ex