python基础教程共60课-第36课异常处理

python基础教程共60课-第36课异常处理

【Python 第36课】 异常处理

在程序运行时,如果我们的代码引发了错误,python就会中断程序,并且输出错误提示。
比如我们写了一句:
print int('0.5')


运行后程序得到错误提示:
Traceback (most recent call last):
File "C:/Python27/test.py", line 1, in <module>
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就是一只灵敏的狗,总能准确地接住飞盘。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
python基础教程60(基础) 【Python 第1】安装 6 【Python 第2】print 7 【Python 第3】IDE 10 【Python 第4】输入 12 【Python 第5】变量 14 【Python 第6】bool 16 【Python 第7】if 19 【Python 第8】while 23 【Python 第9】random 26 【Python 第10】变量2 28 【Python 第11】逻辑判断 29 【Python 第12】 for循环 30 【Python 第13】字符串 32 【Python 第14】字符串格式化 34 【Python 第15】循环的嵌套 35 【Python 第16】字符串格式化2 37 【Python 第17】类型转换 38 【Python 第18】 bool类型转换 40 【Python 第19】 函数 41 【Python 第21】 函数的参数 46 【Python 第22】 函数应用示例 47 【Python 第23】 if, elif, else 49 【Python 第24】 if的嵌套 54 【Python 第25】 初探list 56 【Python 第26】 操作list 58 【Python 第28】 字符串的分割 65 【Python第29】连接list 71 【Python 第30】字符串的索引和切片 72 【Python 第31】读文件 74 【Python 第32】写文件 76 【Python 第33】处理文件中的数据 77 【Python 第34】 break 83 【Python 第35】 continue 84 【Python36异常处理 87 【Python 第37】字典 90 【Python 第38】模块 93 【Python 第39】用文件保存游戏(1) 96 【Python 第40】用文件保存游戏(2) 98 【Python 第41】用文件保存游戏(3) 101 【Python 第42】函数的默认参数 105 【Python 第43】查天气(1) 107 【Python 第44】查天气(2) 108 【Python 第45】查天气(3) 111 【Python 第46】查天气(4) 113 【Python 第47】面向对象(1) 116 【Python 第48】面向对象(2) 117 【Python 第49】面向对象(3) 118 【Python 第50】面向对象(4) 120 【Python 第51】 and-or技巧 123 【Python 第52】元组 124 【Python 第53】数学运算 125 【Python 第54】真值表 127 【Python 第55】正则表达式(1) 128 【Python 第56】正则表达式(2) 130 【Python 第57】正则表达式(3) 131 【Python 第58】正则表达式(4) 134 【Python 第59】正则表达式(5) 135 【Python60】随机数 137

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值