Блок «попробуй-исключить» - это именно то, что ты ищешь.Любой код в части «try» выполняется нормально, но если есть исключение, вместо возврата назад, он переходит в блок «кроме».
Чтобы сформулировать это так, как вы просили, любойвыполняется код в блоке «кроме», ЕСЛИ конкретное исключение было вызвано / исключено.
Вместо ошибки, подобной этой:
print(x)
NameError: name 'x' is not defined
Вы можете сделать это:
try:
print(x)
except NameError:
print("error!")
error!
Будет напечатано "ошибка!"Если что-либо в блоке try:
привело к ошибке NameError.
Вы также можете использовать «else» и «finally» для большего контроля.Любой код в блоке Else выполняется, если ошибок не было.
try:
print("Hello")
except:
print("Something went wrong")
else:
print("Nothing went wrong")
Hello
Nothing went wrong
Все, что находится в блоке finally, запускается после независимо от того, была ли ошибка или нет.
try:
print(x)
except:
print("Something went wrong")
finally:
print("The 'try except' is finished")
Something went wrong
The 'try except' is finished
Я рекомендую прочитать страницу W3 Schools в разделе «Попробуйте, кроме».https://www.w3schools.com/python/python_try_except.asp
Подсказка: вы можете сделать что-то вроде except Exception as e
, что сохранит информацию об исключении в e
.