Можно ли отловить ошибки и выполнить код без Else, используя только Try или с условными выражениями? - PullRequest
0 голосов
/ 19 июня 2020

Мне было интересно, сможем ли мы полностью выполнить наш код в разделе try без использования else. Очевидно, это работает. вот пример:

x = int(input())
try:
  print(10/x)
  print("Possible")

except ZeroDivisionError as e:
 print(e)

Или мы можем сделать это, что является наиболее часто используемым синтаксисом:

x = int(input())
try:
  print(10/x)

except ZeroDivisionError as e:
  print(e)

else:
  print("Possible")

В этом случае мы даже можем использовать условие:

x = int(input())

if x !=0:
  print(10/x)
  print("possible")

elif x ==0 :
  print("Error!")

Так в чем разница между этими тремя? какой из них следует использовать? похоже, все три способны улавливать и предотвращать ошибки.

Ответы [ 2 ]

1 голос
/ 19 июня 2020

Лучше использовать try-except, потому что вы не всегда сможете справиться со всеми ошибками. Например, если пользователь вводит «Строку», вы все равно получите сообщение об ошибке.

Вы также можете отловить нужную ошибку с помощью команды «except». И вы можете увидеть, где ошибка.

1 голос
/ 19 июня 2020

Наверное, первый. Вот причина. Когда вы используете блок try-except, вы получаете контроль над исключением и можете отображать пользовательские сообщения вместе с трассировкой стека. Второй не очень читабелен и немного избыточен (в конце концов, почему вы хотите отображать какое-либо сообщение, если все прошло нормально!), А третий не показывает, где и как произошла ошибка. Если вас это не беспокоит, подойдет любой из них.

...