Перейти к основному содержимому
🔒 Режим превью. Первые 15 уроков Foundations — бесплатные; этот — Pro. Запусти 7-дневный trial чтобы открыть редактор, AI-подсказки и остальной курс. Нужна карта, отмена в Dashboard в любой момент.Начать 7-дневный trial →
← КурсыSenior Deep-DivesModule 9 · Error handling depthCustom exception hierarchies — most-specific except firstpredict134 / 161
+150 XP
Задание
📝 **Задание:** Предскажите точный результат из 5 строк. Функция handle() проверяет каждое исключение в упорядоченной цепочке исключений. Цепочка намеренно организована таким образом, чтобы самый глубокий подкласс находился наверху. Проследите, какое предложение перехватывает каждый из пяти тестовых входных данных. 📋 Реализуйте функцию выше. Тесты запускаются автоматически. 💡 **Подсказка:** Если вы застряли, перечитайте теорию.
Предскажи вывод

Прочти код внимательно

class AppError(Exception):
    pass


class NotFound(AppError):
    pass


class ValidationError(AppError):
    pass


class FieldError(ValidationError):
    pass


def handle(exc: Exception) -> str:
    try:
        raise exc
    except FieldError:
        return "field"
    except ValidationError:
        return "validation"
    except NotFound:
        return "not-found"
    except AppError:
        return "app"
    except Exception:
        return "unknown"


print(handle(FieldError("email bad")))
print(handle(ValidationError("schema bad")))
print(handle(NotFound("user 42")))
print(handle(AppError("generic")))
print(handle(ValueError("not ours")))

Что выведет программа? Напиши здесь:

💬 Обсуждение

Будьте первым — задайте вопрос или поделитесь подсказкой.
Войдите чтобы участвовать в обсуждении. Чтение бесплатно.
Загрузка обсуждения…