高级语言包括python一般都内置了一套try…catch…finally的错误处理机制:
\>>> try:
... print('try...')
... r \= 10 / 0
... print('result:', r)
... except ZeroDivisionError as e:
... print('except:', e)
... finally:
... print('finally...')
... try... except: division by zero finally...
如果认为某些代码可能会出错,可以用try来运行这段代码;
如果try的代码块出现错误,则try代码省下的代码不会继续执行,而是直接跳转到catch代码块,catch就是错误处理代码块(如果没有错误,则不执行)
如果还有finally代码块,则执行finally代码块。没有则不执行
我们看到代码执行 10 / 0 的时候出现了错误(0不能作为除数),下面测试没有错误的情况
\>>> try:
... print('try……')
... r \= 10 / 2 ... print('结果:%s' % r)
... except ZeroDivisionError as e:
... print('发生了异常:',e)
... finally:
... print('最后执行……')
... try……
结果:5.0 最后执行……
如果try代码块可能出现多种错误类型,可以编写多个except代码块来处理;此外,如果没有发生错误,还可以在except代码块后面加上else语句,当没有错误的时候,会自动执行else语句:
\>>> try:
... print('开始:')
... r \= 10 / int('2')
... print('结果:',r)
... except ValueError as e:
... print('ValueError:',e)
... except ZeroDivisionError as e:
... print('ZeroDivision:'