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