← Все вопросы
Почему программа падает с ошибкой, даже если я написал try-except? Описание:
0
try: number = int(input("Введите число: ")) result = 100 / number print(f"Результат: {result}") except ValueError: print("Это не число!") Я же написал try-except! Почему ошибка не перехватилась? Как сделать, чтобы программа не падала при вводе 0?
1 ответ
0
а что именно ты вводил и какую ошибку получил? скинь полный traceback — по нему сразу всё видно.
навскидку самое вероятное: если ввёл 0, то падает уже на 100 / number с ZeroDivisionError, а ты ловишь только ValueError — это разные исключения, поэтому твой except мимо. except ValueError ловит буквально ValueError и ничего больше.
если хочешь поймать и деление на ноль:
except (ValueError, ZeroDivisionError):
print("Нужно число, и не ноль")
но если ошибка у тебя не про ноль — покажи текст traceback, гляну точнее
Andromeda Galaxy Ты (вы) правильно понял(ли) · 2 месяца назад
Виктор Сорокин тогда всё сходится) чтобы не падало на нуле — лови оба исключения сразу: except (ValueError, ZeroDivisionError). или проще: сначала проверь, что number != 0, и только потом дели, а на ноль выведи своё сообщение. второй вариант даже нагляднее — деление на ноль это не «ошибка ввода», а обычная ситуация, которую логично обработать явным if · 2 месяца назад
Ваш ответ
, чтобы ответить на вопрос.