Курс Raku / Об’єкти, введення-виведення та винятки / Винятки / М’які збої / Вправи / М’яке обернене число
Розв’язання: М’яке обернене число
Ось один із можливих варіантів розв’язання задачі.
Код
sub reciprocal($n) {
fail 'no reciprocal of zero' if $n == 0;
return 1 / $n;
}
say reciprocal(4);
say reciprocal(0) // 'undefined';🦋 Вихідний код можна знайти у файлі soft-divide.raku.
Вивід
0.25
undefinedКоментарі
reciprocal(4)звичайно повертає1 / 4, тобто0.25.reciprocal(0)викликаєfail, тож повертаєFailure, який є невизначеним. Оператор//повертає свою праву частину щоразу, коли ліва невизначена, тож ми отримуємо запаснеundefined.Використання
//вважається обробкою збою: воно перевіряє визначеність, не користуючись значенням, тожFailureлишається м’яким і ніколи не кидається як справжній виняток.