打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【Python第36课】异常处理

在程序运行时,如果我们的代码引发了错误,python就会中断程序,并且输出错误提示。


比如我们写了一句:


print int('0.5')


运行后程序得到错误提示:

Traceback (most recent call last):

 File "C:/Python27/test.py", line 1, in

   print int('0.5')

ValueError: invalid literal for int() with base 10: '0.5'


意思是,在test.py这个文件,第1行,print int('0.5')这里,你拿了一个不是10进制能够表示的字符,我没法把它转成int值。


上面的错误可以避免,但在实际的应用中,有很多错误是开发者无法控制的,例如用户输入了一个不合规定的值,或者需要打开的文件不存在。这些情况被称作“异常”,一个好的程序需要能处理可能发生的异常,避免程序因此而中断。


例如我们去打开一个文件:


f = file('non-exist.txt')

print 'File opened!'

f.close()


假如这个文件因为某种原因并没有出现在应该出现的文件夹里,程序就会报错:


IOError: [Errno 2] No such file or directory: 'non-exist.txt'


程序在出错处中断,后面的print不会被执行。


在python中,可以使用try...except语句来处理异常。做法是,把可能引发异常的语句放在try-块中,把处理异常的语句放在except-块中。


把刚才那段代码放入try...except中:


try:

   f = file('non-exist.txt')

   print 'File opened!'

   f.close()

except:

   print 'File not exists.'

print 'Done'


当程序在try内部打开文件引发异常时,会跳过try中剩下的代码,直接跳转到except中的语句处理异常。于是输出了“File not exists.”。如果文件被顺利打开,则会输出“File opened!”,而不会去执行except中的语句。


但无论如何,整个程序不会中断,最后的“Done”都会被输出。


在try...except语句中,try中引发的异常就像是扔出了一只飞盘,而except就是一只灵敏的狗,总能准确地接住飞盘。


#==== Crossin的编程教室 ====#

微信ID:crossincode

QQ群:312723402


面向零基础初学者的编程课

每天5分钟,轻松学编程


回复『 p 』查看课程目录

回复『 t 』查看习题列表


点击“阅读原文”可进入讨论版

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python的try语句
python异常如何全面捕获
python中try except处理程序异常的三种常用方法
python如何进行异常处理
[转载]python异常如何全面捕获
关于python中with 和 try 块的联合使用的问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服