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