コード例 #1
0
 def detail(worker: "sy.workers.AbstractWorker", error_tuple: Tuple[str, str, dict]):
     """
     Detail and re-raise an Exception forwarded by another worker
     """
     error_name, traceback_str, attributes = error_tuple
     error_name, traceback_str = error_name.decode("utf-8"), traceback_str.decode("utf-8")
     attributes = sy.serde._detail(worker, attributes)
     # De-serialize the traceback
     tb = Traceback.from_string(traceback_str)
     # Check that the error belongs to a valid set of Exceptions
     if error_name in dir(sy.exceptions):
         error_type = getattr(sy.exceptions, error_name)
         error = error_type()
         # Include special attributes if any
         for attr_name, attr in attributes.items():
             setattr(error, attr_name, attr)
         reraise(error_type, error, tb.as_traceback())
     else:
         raise ValueError(f"Invalid Exception returned:\n{traceback_str}")
コード例 #2
0
ファイル: response.py プロジェクト: qiulimao/weblocust
    def raise_for_status(self, allow_redirects=True):
        """Raises stored :class:`HTTPError` or :class:`URLError`, if one occurred."""

        if self.status_code == 304:
            return
        elif self.error:
            if self.traceback:
                six.reraise(Exception, Exception(self.error), Traceback.from_string(self.traceback).as_traceback())
            http_error = HTTPError(self.error)
        elif (self.status_code >= 300) and (self.status_code < 400) and not allow_redirects:
            http_error = HTTPError('%s Redirection' % (self.status_code))
        elif (self.status_code >= 400) and (self.status_code < 500):
            http_error = HTTPError('%s Client Error' % (self.status_code))
        elif (self.status_code >= 500) and (self.status_code < 600):
            http_error = HTTPError('%s Server Error' % (self.status_code))
        else:
            return

        http_error.response = self
        raise http_error
コード例 #3
0
ファイル: response.py プロジェクト: LeeiFrankJaw/pyspider
    def raise_for_status(self, allow_redirects=True):
        """Raises stored :class:`HTTPError` or :class:`URLError`, if one occurred."""

        if self.status_code == 304:
            return
        elif self.error:
            if self.traceback:
                six.reraise(Exception, Exception(self.error), Traceback.from_string(self.traceback).as_traceback())
            http_error = HTTPError(self.error)
        elif (self.status_code >= 300) and (self.status_code < 400) and not allow_redirects:
            http_error = HTTPError('%s Redirection' % (self.status_code))
        elif (self.status_code >= 400) and (self.status_code < 500):
            http_error = HTTPError('%s Client Error' % (self.status_code))
        elif (self.status_code >= 500) and (self.status_code < 600):
            http_error = HTTPError('%s Server Error' % (self.status_code))
        else:
            return

        http_error.response = self
        raise http_error