Вызвать ошибку самому
До сих пор остановка шла из самой строки: либо деление на ноль, либо имя, которому не дали значение. raise — другой путь. Остановку вы пишете в программе сами, имя выбираете вы и рядом ставите короткое сообщение.
raise ValueError("empty")
print("water")
Программа останавливается на raise. На экране ValueError и слово empty. До print("water") очередь не доходит. Деления здесь нет. Эту остановку сделал raise, а не счёт.
cups = 0
if cups < 1:
raise ValueError("empty")
print("water")
Эта программа начинается заново. cups равно 0. Ноль меньше единицы, поэтому вход в if есть и raise выполняется. На экране снова та же остановка: ValueError и слово empty. water не пишется. На этой странице остановку никто не ловит, и программа на этом заканчивается.
cups = 3
if cups < 1:
raise ValueError("empty")
print("water")
Эта тоже начинается заново. Теперь cups равно 3. Три не меньше единицы, поэтому в if не входят. raise не выполняется. Экран пишет только water, и остановки нет.
Строка raise сдвинута вправо под if. Этот отступ и помещает её внутрь if. print("water") не сдвинут. Если raise выполнился, программа уже остановилась и очередь до water не доходит. Если if пропущен, water выполняется.
Имя рядом с raise — ValueError, не ZeroDivisionError. ZeroDivisionError был у деления на ноль. Здесь число чашек не годится, поэтому остановка называется ValueError. Если позже её ловить, except должен назвать ValueError. except ZeroDivisionError эту не ловит. Такой ловли нет в программах этой страницы. То, что в кавычках, — сообщение. empty вы поставили сами, чтобы оно было видно рядом с именем. Python не пишет туда None.
Следующая страница — файлы. Эта страница только показывает, как остановку вызываете вы сами. Файл она не открывает.
Чашки и остановка, которую вы написали
Первая программа останавливается на raise, и water не пишется. При cups равном 0 вход в if есть и приходит та же остановка. При cups равном 3 raise не выполняется, и экран пишет water. Имя этой остановки — ValueError. Следующая страница — файлы.
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху