Update documentation and code snippets

This commit is contained in:
2025-12-02 11:31:24 +03:00
parent 7c20bf296b
commit eae8cdbb58
14 changed files with 80 additions and 63 deletions
+14 -17
View File
@@ -3,16 +3,13 @@
Обработка ошибок
==========================================
О разделе
------------
Argenta выбрасывает исключения в пограничных случаях, связанных с пользовательским вводом.
По умолчанию они обрабатываются системными хэндлерами, но вы можете их переопределить. Это делается с помощью сеттеров экземпляра ``App`` вида ``.set_*_handler()``. Подробнее о каждом из них рассказано :ref:`ниже <possible_errors>`.
``Argenta`` выбрасывает исключения в пограничных случаях, связанных с пользовательским вводом.
По умолчанию они обрабатываются системными обработчиками, но вы можете их переопределить. Это делается с помощью сеттеров экземпляра ``App`` вида ``.set_*_handler()``. Подробнее о каждом из них рассказано :ref:`ниже <possible_errors>`.
.. note::
Ни одно исключение не остаётся необработанным, так как для каждого случая предусмотрен стандартный хэндлер. Поэтому переопределение является опциональным.
Ни одно исключение не остаётся необработанным, так как для каждого случая предусмотрен стандартный обработчик. Поэтому переопределение является опциональным.
Пример переопределения обработчика для пустой команды:
**Пример использования:**
.. literalinclude:: ../code_snippets/error_handling/snippet.py
:language: python
@@ -29,7 +26,7 @@ Argenta выбрасывает исключения в пограничных с
Это исключение выбрасывается, когда парсер не может обработать команду из-за некорректного синтаксиса. Чаще всего это связано с ошибкой в синтаксисе флагов. Подробнее о них можно прочитать в разделе :ref:`Flags <root_flags>`.
Стандартный хэндлер выводит в консоль
Стандартный обработчик выводит в консоль:
.. code-block:: shell
@@ -37,7 +34,7 @@ Argenta выбрасывает исключения в пограничных с
Для переопределения используется сеттер ``.set_incorrect_input_syntax_handler()``. Он принимает на вход обработчик с сигнатурой ``Callable[[str], None]``, где единственный аргумент — это строка с необработанной командой.
Пример кода, переопределяющего хэндлер ввода команды с некорректным синтаксисом:
**Пример использования:**
.. literalinclude:: ../code_snippets/error_handling/snippet2.py
:language: python
@@ -53,7 +50,7 @@ Argenta выбрасывает исключения в пограничных с
.. note::
Сравнение на равенство у регистрируемых флагов (``Flag``) происходит иначе, подробнее в :ref:`Flag <root_flags>`.
Стандартный хэндлер выводит в консоль
Стандартный обработчик выводит в консоль:
.. code-block:: shell
@@ -61,7 +58,7 @@ Argenta выбрасывает исключения в пограничных с
Для переопределения используется сеттер ``.set_repeated_input_flags_handler()``. Он принимает на вход обработчик с сигнатурой ``Callable[[str], None]``, где единственный аргумент — это строка с необработанной командой.
Пример кода, переопределяющего хэндлер ввода команды с повторяющимися флагами:
**Пример использования:**
.. literalinclude:: ../code_snippets/error_handling/snippet3.py
:language: python
@@ -74,7 +71,7 @@ Argenta выбрасывает исключения в пограничных с
Исключение выбрасывается, если пользователь ввёл пустую строку или строку, состоящую только из пробельных символов (``\n``, ``\t``, пробел и т.д.).
Стандартный хэндлер выводит в консоль
Стандартный обработчик выводит в консоль:
.. code-block:: shell
@@ -82,7 +79,7 @@ Argenta выбрасывает исключения в пограничных с
Для переопределения используется сеттер ``.set_empty_command_handler()``. Он принимает на вход обработчик с сигнатурой ``Callable[[], None]`` (без аргументов).
Пример кода, переопределяющего хэндлер ввода пустой команды:
**Пример использования:**
.. literalinclude:: ../code_snippets/error_handling/snippet4.py
:language: python
@@ -97,7 +94,7 @@ Argenta выбрасывает исключения в пограничных с
Это поведение активируется, когда пользователь вводит команду, которая не зарегистрирована ни в одном из роутеров и не является псевдонимом (alias) для существующей команды.
Стандартный хэндлер выводит в консоль
Стандартный обработчик выводит в консоль:
.. code-block:: shell
@@ -105,7 +102,7 @@ Argenta выбрасывает исключения в пограничных с
Для переопределения используется сеттер ``.set_unknown_command_handler()``. Он принимает на вход обработчик с сигнатурой ``Callable[[InputCommand], None]``, где аргумент — объект :ref:`InputCommand <root_api_command_input_command>`.
Пример кода, переопределяющего хэндлер ввода неизвестной команды:
**Пример использования:**
.. literalinclude:: ../code_snippets/error_handling/snippet5.py
:language: python
@@ -118,7 +115,7 @@ Argenta выбрасывает исключения в пограничных с
Это поведение активируется, когда пользователь вводит команду, помеченную как команда выхода.
Стандартный хэндлер выводит в консоль текст и завершает работу приложения.
Стандартный обработчик выводит в консоль текст и завершает работу приложения:
.. code-block:: shell
@@ -126,7 +123,7 @@ Argenta выбрасывает исключения в пограничных с
Для переопределения используется сеттер ``.set_exit_command_handler()``. Он принимает на вход обработчик с сигнатурой ``Callable[[Response], None]``, где аргумент — объект :ref:`Response <root_api_response>`.
Пример кода, переопределяющего хэндлер ввода команды выхода:
**Пример использования:**
.. literalinclude:: ../code_snippets/error_handling/snippet6.py
:language: python