Теперь я делаю TCP-сервер с asyncio.
Я хочу добавить в свой код обработку ошибок исключения. (как показано ниже)
try:
data = await reader.read(SERVER_IO_BUFFER_SIZE)
except SomeError:
#error handle
Итак, я смотрю официальный документ asyncio.
но я не могу найти никакой информации об ошибках, которые могут произойти.
(ссылка: https://docs.python.org/3/library/asyncio-stream.html#asyncio.StreamReader.read)
Как я могу получить информацию о возможных ошибках?





Точные ошибки, которые могут возникнуть, будут зависеть от типа потока позади StreamReader. Реализация, которая общается с сокетом, вызовет IOError, в то время как реализация, считывающая данные из базы данных, может вызвать некоторые ошибки, связанные с базой данных.
Если вы имеете дело с сетью, например через asyncio.open_connection или asyncio.start_server вы можете ожидать экземпляры IOError и его подклассов. Другими словами, используйте except IOError as e.
Кроме того, если сопрограмма отменена, вы можете получить asyncio.CancelledError на любом await. Вы, вероятно, не захотите обрабатывать это исключение - просто позвольте ему распространиться и обязательно используйте соответствующие предложения finally или менеджеры контекста with для обеспечения очистки. (Эта последняя часть - хорошая идея независимо от CancelledError.)