Към основното съдържание
🔒 Режим за преглед. Първите петнадесет урока на Foundations са безплатни; този е Pro. Стартирайте 7-дневен trial, за да отключите редактора, AI подсказките и останалата част от курса. Изисква се карта, отменете по всяко време в Dashboard.Стартирай 7-дневен trial →
← КурсовеSenior Deep-DivesModule 9 · Error handling depthMis-ordered except clauses — when subclass handlers become dead codepredict135 / 161
+150 XP
Задача
📝 **Задача:** Предскажете точния 4-редов изход. Веригата има „с изключение на изключение:“ НА ГОРЕ. Проследете всеки вход през веригата и идентифицирайте коя клауза действително се задейства. 📋 Приложете функцията по-горе. Тестовете се изпълняват автоматично. 💡 **Съвет:** Прочетете отново теорията, ако се затрудните.
Предскажи изхода

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

class AppError(Exception):
    pass


class NotFound(AppError):
    pass


class ValidationError(AppError):
    pass


def categorise(exc: Exception) -> str:
    try:
        raise exc
    except Exception:
        return "generic"
    except AppError:
        return "app"
    except NotFound:
        return "not-found"
    except ValidationError:
        return "validation"


print(categorise(NotFound("user 42")))
print(categorise(ValidationError("schema bad")))
print(categorise(AppError("generic")))
print(categorise(ValueError("not ours")))

Какво ще изведе програмата? Напиши тук:

💬 Дискусия

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