示例#1
0
  def __TranslateError(error, detail=''):
    """Translates a TaskQueueServiceError into an exception.

    Args:
      error: Value from TaskQueueServiceError enum.
      detail: A human-readable description of the error.

    Returns:
      The corresponding Exception sub-class for that error code.
    """
    if (error >= taskqueue_service_pb.TaskQueueServiceError.DATASTORE_ERROR
        and isinstance(error, int)):
      from google.appengine.api import datastore
      datastore_exception = datastore._DatastoreExceptionFromErrorCodeAndDetail(
          error - taskqueue_service_pb.TaskQueueServiceError.DATASTORE_ERROR,
          detail)

      class JointException(datastore_exception.__class__, DatastoreError):
        """There was a datastore error while accessing the queue."""
        __msg = (u'taskqueue.DatastoreError caused by: %s %s' %
                 (datastore_exception.__class__, detail))
        def __str__(self):
          return JointException.__msg

      return JointException()
    else:
      exception_class = _ERROR_MAPPING.get(error, None)
      if exception_class:
        return exception_class(detail)
      else:
        return Error('Application error %s: %s' % (error, detail))
示例#2
0
    def __TranslateError(error, detail=''):
        """Translates a TaskQueueServiceError into an exception.

    Args:
      error: Value from TaskQueueServiceError enum.
      detail: A human-readable description of the error.

    Returns:
      The corresponding Exception sub-class for that error code.
    """
        if (error >= taskqueue_service_pb.TaskQueueServiceError.DATASTORE_ERROR
                and isinstance(error, int)):
            from google.appengine.api import datastore
            datastore_exception = datastore._DatastoreExceptionFromErrorCodeAndDetail(
                error -
                taskqueue_service_pb.TaskQueueServiceError.DATASTORE_ERROR,
                detail)

            class JointException(datastore_exception.__class__,
                                 DatastoreError):
                """There was a datastore error while accessing the queue."""
                __msg = (u'taskqueue.DatastoreError caused by: %s %s' %
                         (datastore_exception.__class__, detail))

                def __str__(self):
                    return JointException.__msg

            return JointException()
        else:
            exception_class = _ERROR_MAPPING.get(error, None)
            if exception_class:
                return exception_class(detail)
            else:
                return Error('Application error %s: %s' % (error, detail))