mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-11 18:01:04 +00:00
50 lines
1.2 KiB
ReStructuredText
50 lines
1.2 KiB
ReStructuredText
|
|
######
|
||
|
|
Errors
|
||
|
|
######
|
||
|
|
|
||
|
|
|
||
|
|
Handling errors
|
||
|
|
===============
|
||
|
|
|
||
|
|
Is recommended way that you should use errors inside handlers using try-except block,
|
||
|
|
but in common cases you can use global errors handler at router or dispatcher level.
|
||
|
|
|
||
|
|
If you specify errors handler for router - it will be used for all handlers inside this router.
|
||
|
|
|
||
|
|
If you specify errors handler for dispatcher - it will be used for all handlers inside all routers.
|
||
|
|
|
||
|
|
.. code-block:: python
|
||
|
|
|
||
|
|
@router.error(ExceptionTypeFilter(MyCustomException), F.update.message.as_("message"))
|
||
|
|
async def handle_my_custom_exception(event: ErrorEvent, message: Message):
|
||
|
|
# do something with error
|
||
|
|
await message.answer("Oops, something went wrong!")
|
||
|
|
|
||
|
|
|
||
|
|
@router.error()
|
||
|
|
async def error_handler(event: ErrorEvent):
|
||
|
|
logger.critical("Critical error caused by %s", event.exception, exc_info=True)
|
||
|
|
# do something with error
|
||
|
|
...
|
||
|
|
|
||
|
|
|
||
|
|
.. _error-event:
|
||
|
|
|
||
|
|
ErrorEvent
|
||
|
|
==========
|
||
|
|
|
||
|
|
.. automodule:: aiogram.types.error_event
|
||
|
|
:members:
|
||
|
|
:member-order: bysource
|
||
|
|
:undoc-members: True
|
||
|
|
:exclude-members: model_config,model_fields
|
||
|
|
|
||
|
|
.. _error-types:
|
||
|
|
|
||
|
|
Error types
|
||
|
|
===========
|
||
|
|
|
||
|
|
.. automodule:: aiogram.exceptions
|
||
|
|
:members:
|
||
|
|
:member-order: bysource
|