✏️ SuppressNotModifiedError¶
Редактирование сообщения в тот же контент, что уже есть, заставляет Telegram поднять TelegramBadRequest: message is not modified. Обычно это безобидно (вы перерисовали экран, который не изменился), но роняет хендлер.
Оберните редактирование в контекстный менеджер, чтобы проглотить ровно эту ошибку:
from raito.utils.errors import SuppressNotModifiedError
with SuppressNotModifiedError():
await message.edit_text("same text")
Подавляется только TelegramBadRequest с «message is not modified»; любая другая ошибка, включая прочие варианты TelegramBadRequest, пробрасывается как обычно.
Когда применять¶
Везде, где интерфейс перерисовывается на каждое действие и может нарисовать тот же экран: обновление inline-меню, живое статус-сообщение или возврат пагинацией на текущую страницу. Собственные пагинаторы Raito используют его внутри, поэтому там он вам почти не нужен. Берите его в своих интерфейсах с редактированием на месте.
Совет
Он также доступен в rt, поэтому from raito import rt и затем with rt.SuppressNotModifiedError(): ... работает без более глубокого импорта.