Как лучше всего обрабатывать исключения? Имею такой код:
response = request().json()
try:
status_code = ApiStatusCode(response.get('status_code'))
except ValueError:
raise Exception(f"API returns unknown error code: {response.get('status_code')}")
if status_code is not ApiStatusCode.SUCCESS:
logger.error(f"Error: {response.get('message').lower()}")
exceptions_map = {
ApiStatusCode.INVALID: InvalidDataException,
ApiStatusCode.LIMIT: LimitException
}
raise exceptions_map.get(status_code, Exception(f"API returns error code: {status_code.value}"))
ApiStatusCode
- класс enums с кодами ошибок.
class ApiStatusCode(enum.IntEnum):
SUCCESS = 0
INVALID = 1
LIMIT = 5
Как правильно хранить исключения для "плохих" статус кодов? И как их лучше получить, чтобы выбросить?