mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
Update documentation and code snippets
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user