Source code for bastio.excepts
# Copyright 2013 Databracket LLC
# See LICENSE file for details.
"""
:module: bastio.excepts
:synopsis: Exception classes used by this project.
:author: Amr Ali <amr@databracket.com>
.. autofunction:: reraise
.. autoexception:: BastioException
.. autoexception:: BastioConfigError
.. autoexception:: BastioUnimplementedError
.. autoexception:: BastioTaskError
.. autoexception:: BastioCryptoError
.. autoexception:: BastioNetstringError
.. autoexception:: BastioEOFError
.. autoexception:: BastioMessageError
.. autoexception:: BastioBackendError
.. autoexception:: BastioAccountError
"""
__author__ = "Amr Ali"
__copyright__ = "Copyright 2013 Databracket LLC"
__license__ = "GPLv3+"
import sys
from bastio.mixin import public
@public
[docs]def reraise(ex, message=None):
"""Reraise the exception last happened with the original traceback.
:param ex:
The exception to be raised instead of the original one.
:type ex:
A subclass of Exception.
:param message:
An optional message to replace the old exception's message.
:type message:
str
:raises:
``ex``
"""
(_, msg, tb) = sys.exc_info()
msg = message if message else msg
raise ex, msg, tb
@public
[docs]class BastioException(Exception):
"""A Bastio general exception"""
pass
@public
[docs]class BastioConfigError(BastioException):
"""A configuration operation error"""
pass
@public
[docs]class BastioUnimplementedError(BastioException):
"""An unimplemented operation error"""
pass
@public
[docs]class BastioTaskError(BastioException):
"""A task operation error"""
pass
@public
[docs]class BastioCryptoError(BastioException):
"""A cryptographic operation error"""
pass
@public
[docs]class BastioNetstringError(BastioException):
"""A Netstring parsing or composition error"""
pass
@public
[docs]class BastioEOFError(BastioException):
"""EOF error"""
pass
@public
[docs]class BastioMessageError(BastioException):
"""Message parser operation error"""
pass
@public
[docs]class BastioBackendError(BastioException):
"""A backend client operation error"""
pass
@public
[docs]class BastioAccountError(BastioException):
"""An account operation error"""
pass