Войти Создать аккаунт

Свои команды · Шаг 3 из 4

Ошибка вместо падения

Своя команда — это своя ошибка: опечатка в дате, деление на ноль, несуществующий ключ. Утилита, которая на это отвечает двадцатью строками трассировки, выглядит сломанной, а сломана в ней одна команда из десяти.

Что сделать

Сделайте так, чтобы ошибка в одной команде была строкой текста, а не двадцатью строками трассировки.

Что приходит

  • imya — имя команды для сообщения

Что вернуть

Декоратор; обёртка отдаёт результат функции, а при ошибке-наследнике Exception — "команда «сумма» не сработала: текст ошибки"; имя и описание функции сохраняются.

Допишите функцию bezopasno в редакторе справа. Результат верните через return — то, что напечатано, на проверку не влияет.

В проекте

Каждая команда в оболочке обёрнута @bezopasno("имя"). Решите шаг — и ошибка в одной команде будет одной строкой текста, а не двадцатью строками трассировки.

Пример

summa обёрнута @bezopasno("сумма") и бросает ValueError("нечего складывать"), если чисел нет. summa(2, 3) возвращает 5, а summa() — строку «команда «сумма» не сработала: нечего складывать».

Ctrl+Enter — проверить

Обсуждение

Вопросов пока нет.

Войдите, чтобы спросить.