В настоящее время все ошибки API централизованно обрабатываются через класс MaxApiError:
@dataclass(slots=True)
class MaxApiError(Exception):
code: int
raw: str | dict[str, Any]
def __str__(self) -> str:
return f"Ошибка от API: {self.code=} {self.raw=}"
На уровне методов библиотеки исключение выбрасывается в исходном виде, без какой-либо трансформации или парсинга содержимого.
К сожалению, документации по ошибкам нет. Из-за этого неясно, какие именно значения code и форматы raw могут прийти в процессе работы. Клиент вынужден выяснять это опытным путём, что ненадёжно и замедляет разработку.
Считаю целесообразным создать подклассы исключений для ключевых сценариев и/или задокументировать известные ошибки.
В настоящее время все ошибки API централизованно обрабатываются через класс
MaxApiError:На уровне методов библиотеки исключение выбрасывается в исходном виде, без какой-либо трансформации или парсинга содержимого.
К сожалению, документации по ошибкам нет. Из-за этого неясно, какие именно значения
codeи форматыrawмогут прийти в процессе работы. Клиент вынужден выяснять это опытным путём, что ненадёжно и замедляет разработку.Считаю целесообразным создать подклассы исключений для ключевых сценариев и/или задокументировать известные ошибки.