Курс языка программирования Raku / Объекты, ввод-вывод и исключения / Исключения / Собственные исключения / Exercises

Ошибка отрицательного числа

Задача

Определите собственный класс исключения Negative, наследующий от Exception, с атрибутом n и методом message, возвращающим <n> is negative.

Напишите подпрограмму check($n), которая бросает Negative (несущий это n), когда её аргумент меньше нуля, и в остальных случаях возвращает аргумент. Затем в блоке вызовите check(-5) и с помощью фазера CATCH с ветвью when Negative напечатайте сообщение исключения.

Наконец, после блока бросьте ещё один Negativen, равным -10), чтобы показать: если исключение брошено там, где его не охраняет CATCH, программа завершается.

Пример

Программа печатает:

-5 is negative
-10 is negative
  in block <unit> at negative-error.raku line 24

Решение

Посмотреть решение

Навигация по курсу

Решение: Слишком большое   |   Решение: Ошибка отрицательного числа