python异常try语句中else和finally的区别

首先请看例子:

1.else

测试代码执行不成功

>>> try:
… a=’a’+2 ##测试代码
… except:
… print ‘error’
… else:
… print ‘ok’


error ##打印出except部分的内容

测试代码执行成功
>>> try:
… a=’a’+’2’
… except:
… print ‘error’
… else:
… print ‘ok’


ok ###打印出else部分的内容

####
2.finally

测试代码执行不成功

>>> try:
… a=’a’+2
… except:
… print ‘error’
… finally:
… print ‘end’


error ##打印出except部分的内容
end ##打印出finally部分的内容

测试代码执行成功

>>> try:
… a=’a’+’2’
… except:
… print ‘error’
… finally:
… print ‘end’


end ##打印出finally部分的内容

###

else和finally的区别:

else只有在测试代码执行成功的情况下才会执行;

finally不管测试代码是否执行成功都会在最后被执行。