запуск кода, если операторы try были успешными в python

мне было интересно, есть ли в 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

но мне было интересно, есть ли более короткий путь.

3 ответов


вы хотите "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, а затем вашу обработку ошибок в блоке except.