Add hierarchy logic to custom exceptions.

This commit is contained in:
Davide Casale
2022-12-15 19:14:00 +01:00
parent c9f86d6d03
commit 24b105378a
3 changed files with 27 additions and 3 deletions

18
bfxapi/exceptions.py Normal file
View File

@@ -0,0 +1,18 @@
__all__ = [
"BfxBaseException",
"LabelerSerializerException"
]
class BfxBaseException(Exception):
"""
Base class for every custom exception in bfxapi/rest/exceptions.py and bfxapi/websocket/exceptions.py.
"""
pass
class LabelerSerializerException(BfxBaseException):
"""
This exception indicates an error thrown by the _Serializer class in bfxapi/labeler.py.
"""
pass

View File

@@ -1,3 +1,5 @@
from .exceptions import LabelerSerializerException
from typing import Generic, TypeVar, Iterable, Optional, List, Any
T = TypeVar("T")
@@ -10,7 +12,7 @@ class _Serializer(Generic[T]):
labels = list(filter(lambda label: label not in (skip or list()), self.__labels))
if len(labels) > len(args):
raise Exception("<labels> and <*args> arguments should contain the same amount of elements.")
raise LabelerSerializerException("<labels> and <*args> arguments should contain the same amount of elements.")
for index, label in enumerate(labels):
if label not in self.__IGNORE:

View File

@@ -1,12 +1,16 @@
from ..exceptions import BfxBaseException
__all__ = [
"BfxRestException",
"RequestParametersError",
"ResourceNotFound",
"InvalidAuthenticationCredentials"
]
class BfxRestException(Exception):
class BfxRestException(BfxBaseException):
"""
Base class for all exceptions defined in bfxapi/rest/exceptions.py.
Base class for all custom exceptions in bfxapi/rest/exceptions.py.
"""
pass