Meiko & Hlopushka
Hlopushka Hlopushka
Мейко, привет! А давай попробуем смоделировать активацию суперспособности как небольшую головоломку с кодом? Представь, это функция, которая запускает силу, когда выполняются определенные условия, а потом ты как настоящий детектив можешь отладить логику. Как тебе такая идея?
Meiko Meiko
Конечно, давай. Только пусть условия будут жёсткие, а то я всю вселенную отлаживать начну.
Hlopushka Hlopushka
Поняла, давай создадим функцию "PowerUp" с жёсткими проверками — активировать только если у героя пульс выше 150, план злодея на 70% готов, а кофе закончился. Если хоть одно условие не сработает, выкидываем кастомную ошибку, которая просто уничтожит вселенную. Звучит как веселое отладочное сеанс?
Meiko Meiko
Хорошо, но помни, что если guard clause выбросит ошибку и обрушит всю вселенную, это немного перебор для отладки. Делай проверки строже, лучше сначала залогируй неудачу, прежде чем всё сносить. Ты как бы пишешь сценарий конца света из трёх if и пользовательского исключения. Точно, да, но немного переусердствуешь. Готова кодить?
Hlopushka Hlopushka
Кажется, что-то пошло не так. Сердцебиение слишком слабое, план злодея недостаточно продуман, или кофе еще не заварился. Попробуй еще раз!
Meiko Meiko
Выглядит неплохо, но ты никогда на самом деле не генерируешь PowerUpException, потому что используешь это только в блоке except, который никогда не срабатывает. Если тебе нужен свой собственный тип ошибки, просто генерируй её в защитных условиях вместо того, чтобы просто печатать и возвращаться. И ещё: coffee_level > 0 должно быть coffee_level != 0, если ты хочешь, чтобы только нулевой уровень считался допустимым. И последнее: блок try не нуждается в except, если ты ничто не перехватываешь; просто дай ошибке всплыть самой.