Ответ 1
Вы хотите "else":
for i in [0, 1]:
try:
print '10 / %i: ' % i, 10 / i
except:
print 'Uh-Oh'
else:
print 'Yay!'
Мне было интересно, был ли в python простой способ запускать код, если утверждение try было успешным, чего не было в самом заявлении try. Это то, что делают команды else или finally (я не понял их документацию)? Я знаю, что мог бы использовать такой код:
successful = False
try:
#code that might fail
successful = True
except:
#error handling if code failed
if successful:
#code to run if try was successful that isn't part of try
но мне было интересно, был ли более короткий путь.
Вы хотите "else":
for i in [0, 1]:
try:
print '10 / %i: ' % i, 10 / i
except:
print 'Uh-Oh'
else:
print 'Yay!'
Вы ищете ключевое слово else
:
try:
#code that might fail
except SomeException:
#error handling if code failed
else:
# do this if no exception occured
Ваш блок try должен быть кодом, который вы хотите выполнить, и ваш исключение должно быть убито программой. Мне нужно лучше понять ваш объект, чтобы дать лучший ответ.
В программировании OO вы хотите "Скажите, не спрашивайте", поэтому храните всю логику, которая должна произойти в блоке try, а затем ваша обработка ошибок в исключающем блоке.