python错误处理—try…catch…finally、调用栈分析

高级语言包括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:'

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值