Source code for grab.error

"""
Custom exception which Grab instance could generate.

Taxonomy:

Exception
|-> GrabError
    |-> GrabNetworkError <- IOError
    |-> Grab*Error

Exception
| -> weblib.error.WeblibError
     |-> DataNotFound <- IndexError
"""
from __future__ import absolute_import
from weblib.error import DataNotFound  # noqa pylint: disable=unused-import


[docs]class GrabError(Exception): """ All custom Grab exception should be children of that class. """
[docs]class GrabNetworkError(IOError, GrabError): """ Raises in case of network error. """
[docs]class GrabTimeoutError(GrabNetworkError): """ Raises when configured time is outed for the request. In curl transport it is CURLE_OPERATION_TIMEDOUT (28) """
[docs]class GrabMisuseError(GrabError): """ Indicates incorrect usage of grab API. """
[docs]class GrabConnectionError(GrabNetworkError): """ Raised when it is not possible to establish network connection. In curl transport it is CURLE_COULDNT_CONNECT (7) """
class GrabCouldNotResolveHostError(GrabNetworkError): """ URLE_COULDNT_RESOLVE_HOST (6) Couldn't resolve host. The given remote host was not resolved. """
[docs]class GrabAuthError(GrabError): """ Raised when remote server denies authentication credentials. In curl transport it is CURLE_COULDNT_CONNECT (67) """
[docs]class GrabTooManyRedirectsError(GrabError): """ Raised when Grab reached max. allowd number of redirects for one request. """
[docs]class GrabInvalidUrl(GrabError): """ Raised when Grab have no idea how to handle the URL or when some error occurred while normalizing URL e.g. IDN processing. """
class GrabInternalError(GrabError): pass