Курс по 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

Решение

Вижте решението

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

Решение: Твърде голямо   |   Решение: Грешка при отрицателно число