直接用代码执行流程来解释吧。
代码清单1(try、except、finally):
try:执行流程:先执行try语句块, 当执行出错时,跳出try语句块, 执行except语句块,执行完except语句块之后, 如果有finally语句块,则执行。
print 'try...'
r = 10 / 0
print 'result:', r
except ZeroDivisionError, e:
print 'except:', e
finally:
print 'finally...'
print 'END'
代码清单2(try、except、else、finally):
try:执行流程:如果 没有错误发生,则try执行完毕, 不执行except,继续执行else语句块。
print 'try...'
r = 10 / int('a')
print 'result:', r
except ValueError, e:
print 'ValueError:', e
except ZeroDivisionError, e:
print 'ZeroDivisionError:', e
else:
print 'no error!'
finally:
print 'finally...'
print 'END'
参考文献:
1.