Viewing file: exceptions.py (3.29 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
# urllib3/exceptions.py # Copyright 2008-2013 Andrey Petrov and contributors (see CONTRIBUTORS.txt) # # This module is part of urllib3 and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php
## Base Exceptions
class HTTPError(Exception): "Base exception used by this module." pass
class PoolError(HTTPError): "Base exception for errors caused within a pool." def __init__(self, pool, message): self.pool = pool HTTPError.__init__(self, "%s: %s" % (pool, message))
def __reduce__(self): # For pickling purposes. return self.__class__, (None, None)
class RequestError(PoolError): "Base exception for PoolErrors that have associated URLs." def __init__(self, pool, url, message): self.url = url PoolError.__init__(self, pool, message)
def __reduce__(self): # For pickling purposes. return self.__class__, (None, self.url, None)
class SSLError(HTTPError): "Raised when SSL certificate fails in an HTTPS connection." pass
class ProxyError(HTTPError): "Raised when the connection to a proxy fails." pass
class ConnectionError(HTTPError): "Raised when a normal connection fails." pass
class DecodeError(HTTPError): "Raised when automatic decoding based on Content-Type fails." pass
## Leaf Exceptions
class MaxRetryError(RequestError): "Raised when the maximum number of retries is exceeded."
def __init__(self, pool, url, reason=None): self.reason = reason
message = "Max retries exceeded with url: %s" % url if reason: message += " (Caused by %s: %s)" % (type(reason), reason) else: message += " (Caused by redirect)"
RequestError.__init__(self, pool, url, message)
class HostChangedError(RequestError): "Raised when an existing pool gets a request for a foreign host."
def __init__(self, pool, url, retries=3): message = "Tried to open a foreign host with url: %s" % url RequestError.__init__(self, pool, url, message) self.retries = retries
class TimeoutStateError(HTTPError): """ Raised when passing an invalid state to a timeout """ pass
class TimeoutError(HTTPError): """ Raised when a socket timeout error occurs.
Catching this error will catch both :exc:`ReadTimeoutErrors <ReadTimeoutError>` and :exc:`ConnectTimeoutErrors <ConnectTimeoutError>`. """ pass
class ReadTimeoutError(TimeoutError, RequestError): "Raised when a socket timeout occurs while receiving data from a server" pass
# This timeout error does not have a URL attached and needs to inherit from the # base HTTPError class ConnectTimeoutError(TimeoutError): "Raised when a socket timeout occurs while connecting to a server" pass
class EmptyPoolError(PoolError): "Raised when a pool runs out of connections and no more are allowed." pass
class ClosedPoolError(PoolError): "Raised when a request enters a pool after the pool has been closed." pass
class LocationParseError(ValueError, HTTPError): "Raised when get_host or similar fails to parse the URL input."
def __init__(self, location): message = "Failed to parse: %s" % location HTTPError.__init__(self, message)
self.location = location
|