Если для исключения - PullRequest
       4

Если для исключения

0 голосов
/ 06 декабря 2018

Я учу себя Python, и я все еще любитель запоминать все ключевые слова.

Итак;простой вопрос, есть ли способ использовать оператор if для исключения?

Я могу заставить exception(NameError) напечатать что-нибудь.Тем не менее, я хочу использовать оператор if для , если выполняется исключение, тогда сделайте это .

Помощь будет принята с благодарностью!

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Блок «попробуй-исключить» - это именно то, что ты ищешь.Любой код в части «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.

0 голосов
/ 06 декабря 2018

блоки try-исключения были разработаны специально с целью перехвата исключений.если операторы являются условными и не предназначены для работы с исключениями.

Вот простая программа для демонстрации обработки исключений:

class SomeException(Exception):
    pass

try:
    print("In try block.")
    raise SomeException()
except SomeException:
    print("In except block.")

Кроме того, если вам нужна информация об исключении, вы можете использоватьспециальный блок кроме:

class SomeException(Exception):
    pass

try:
    print("In try block.")
    raise SomeException()
except SomeException as exc: #exc is the exception object
    print("In except block.")

При создании исключений вы можете при желании передать один или несколько аргументов, чтобы указать почему возникло исключение:

class SomeException(Exception):
    pass

try:
    print("In try block.")
    raise SomeException("message")
except SomeException as exc:
    print(exc.args[0]) #Prints "message"

Вот учебник по исключениям , который я считаю особенно полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...