Должен ли я проверить if
что-то действительно или просто try
сделать это и поймать исключение?
- Есть ли надежная документация о том, что предпочтителен один из способов?
- Является ли один способ более питоническим ?
Например, я должен:
if len(my_list) >= 4:
x = my_list[3]
else:
x = 'NO_ABC'
Или:
try:
x = my_list[3]
except IndexError:
x = 'NO_ABC'
Некоторые мысли ...
20 человек говорит:
Ошибки никогда не должны проходить бесшумно.
Если явно не молчать.
Следует ли использовать try
вместо вместо if
интерпретировать ошибку, как молчание? И если так, вы явно заставляете его замолчать, используя его таким образом, поэтому делаете это нормально?
Я не имею в виду ситуации, когда вы можете делать вещи только в одном направлении; например:
try:
import foo
except ImportError:
import baz
if index in mylist
Индекс тестов является элементом mylist, а не возможным индексом. Вы бы хотелиif index < len(mylist)
вместо этого.