Skip to content

Commit de7b1f0

Browse files
committed
Примечание про невозврат из errors_handler
1 parent 00f7376 commit de7b1f0

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

Diff for: book_src/quickstart.md

+7-1
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ dp.register_message_handler(cmd_test2, commands="test2")
131131
## Обработка ошибок
132132

133133
При работе бота неизбежно возникновение различных ошибок, связанных не с кодом, а с внешними событиями. Простейший пример:
134-
попытка отправить сообщение пользователю, заблокировавшему бота. Оборачивать каждый вызов в try..except некрасиво, поэтому
134+
попытка отправить сообщение пользователю, заблокировавшему бота. Чтобы не оборачивать каждый вызов в `try..except`,
135135
в aiogram существует специальный хэндлер для исключений, связанных с Bot API.
136136
Рассмотрим следующий пример кода, имитирующий задержку перед ответом пользователю:
137137
```python
@@ -162,6 +162,12 @@ async def error_bot_blocked(update: types.Update, exception: BotBlocked):
162162
возникнуть в различных хэндлерах, то можно вынести её обработку в отдельный хэндлер ошибок. Кода будет меньше, а оставшийся
163163
станет читабельнее.
164164

165+
!!! warning "Важно"
166+
У errors_handler есть одна особенность, из-за которой его использование может быть нежелательно. Дело в том, что
167+
после срабатывания и завершения хэндлера, управление в исходную функцию **не возвращается**. Проще говоря, если,
168+
например, 57-я итерация цикла из 100 привела к срабатыванию errors_handler, остальные итерации выполнены не будут,
169+
как и весь остальной код исходной функции. В этом случае ничего не остаётся, кроме как использовать `try..except`.
170+
165171
## Синтаксический сахар
166172

167173
Для того, чтобы сделать код чище и читабельнее, aiogram расширяет возможности стандартных объектов Telegram.

0 commit comments

Comments
 (0)