问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python中异常处理的使用方法?

发布网友 发布时间:2022-04-23 22:42

我来回答

2个回答

懂视网 时间:2022-04-28 19:11

python主要支持五种异常机制,分别举例。

默认的异常处理器

s = 'Hello girl!'
print s[100]
print 'continue'

如果我们没有对异常进行任何预防,那么在程序执行的过程中发生异常,就会中断程序,调用python默认的异常处理器,并在终端输出异常信息。这种情况下,第3行代码不会执行。

try…except

s = 'Hello girl!'
try:
 print s[100]
except IndexError:
 print 'error...'
print 'continue'

程序执行到第2句时发现try语句,进入try语句块执行,发生异常,回到try语句层,寻找后面是否有except语句。找到except语句后,会调用这个自定义的异常处理器。except将异常处理完毕后,程序继续往下执行。这种情况下,最后两个print语句都会执行。

except后面也可以为空,表示捕获任何类型的异常。

try…finally

s = 'Hello girl!'
try:
 print s[100]
finally:
 print 'error...'
print 'continue'

finally语句表示,无论异常发生与否,finally中的语句都要执行。但是,由于没有except处理器,finally执行完毕后程序便中断。这种情况下,倒第2个print会执行,到第1个不会执行。如果try语句中没有异常,三个print都会执行。

with…as

with open('nothing.txt','r') as f:
 f.read()
 print 2/0
print 'continue'

我们平时在使用类似文件的流对象时,使用完毕后要调用close方法关闭,很麻烦。这里with…as语句提供了一个非常方便的替代方法:open打开文件后将返回的文件流对象赋值给f,然后在with语句块中使用。with语句块完毕之后,会隐藏地自动关闭文件。

如果with语句或语句块中发生异常,会调用默认的异常处理器处理,但文件还是会正常关闭。

这种情况下,会抛出异常,最后的print不执行。

热心网友 时间:2022-04-28 16:19

8.3. 异常处理
通过编程处理选择的异常是可行的。看一下下面的例子:它会一直要求用户输入,直到输入一个合法的整数为止,但允许用户中断这个程序(使用 Control-C 或系统支持的任何方法)。注意:用户产生的中断会引发一个 KeyboardInterrupt 异常。
>>> while True:
... try:
... x = int(input("Please enter a number: "))
... break
... except ValueError:
... print("Oops! That was no valid number. Try again...")
...
try 语句按如下方式工作。
首先,执行 try 子句 (在 try 和 except 关键字之间的部分)。
如果没有异常发生, except 子句 在 try 语句执行完毕后就被忽略了。
如果在 try 子句执行过程中发生了异常,那么该子句其余的部分就会被忽略。
如果异常匹配于 except 关键字后面指定的异常类型,就执行对应的except子句。然后继续执行 try 语句之后的代码。
如果发生了一个异常,在 except 子句中没有与之匹配的分支,它就会传递到上一级 try 语句中。
如果最终仍找不到对应的处理语句,它就成为一个 未处理异常,终止程序运行,显示提示信息。
一个 try 语句可能包含多个 except 子句,分别指定处理不同的异常。至多只会有一个分支被执行。异常处理程序只会处理对应的 try 子句中发生的异常,在同一个 try 语句中,其他子句中发生的异常则不做处理。一个 except 子句可以在括号中列出多个异常的名字,例如:
... except (RuntimeError, TypeError, NameError):
... pass
最后一个 except 子句可以省略异常名称,以作为通配符使用。你需要慎用此法,因为它会轻易隐藏一个实际的程序错误!可以使用这种方法打印一条错误信息,然后重新抛出异常(允许调用者处理这个异常):
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
请帮忙查iphone4手机的序列号dx3hnchpdp0n DX3J481PDP0N帮忙查一下 是真的吗 我不会查 大神们是翻新的? 苹果4激活日期查询 猫猫一直发情怎么办呢 如何帮助猫咪度过发情期呢? 本科英语都要过4级吗 车子中间的踏板是什么 高考400分能考哪些军事类二本 联通3g双卡双待智能导航手机 ...可以一个卡装移动2g的卡,专打电话,一个卡装联通3g流量卡吗 python绘折线图(数据很多)很难看 测试中的异常数据剔除用什么方法? 淘宝不发货赔偿红包还是现金 淘宝投诉然后给的红包在哪里 淘宝延迟发货赔偿的红包不用能自动消失吗? 淘宝投诉赔偿的红包怎么使用 淘宝商家延迟发货,举报后。商家赔偿了5元。可是请问那5元呢?打到哪里... 淘宝缺货投诉成功后得到了赔付红包,如果订单被退回红包会收回吗? 古琴如何考级? 我要古代琴曲,要介绍,清代以前 古琴是如何考级的? 古琴曲集跟古琴考级曲集有什么区别啊 简述古琴的发展历史并列举其代表曲目 古琴的考级曲目 古琴十大名曲 古代有哪些著名的琴曲﹖ 明清时期都有哪些著名的琴曲作品? 中国的十大古琴名曲是什么? 古琴曲集的内容简介 古琴谱集最早 关于python教程中处理异常的问题 python 如何跳过异常继续执行 python异常处理语句 Python 为什么不能捕获如下的除零异常 Python这段程序中如果把try异常语句删除,后面的top=TK()为什么会报错 花呗分期还好还是最低还款好 花呗还最低合适还是分期合适 我看你这个过江龙怎么和我地头蛇是什么电影 一个人说我看你这辈子怎么办的是什么意思? 我看你这下要逆袭了怎么回答 你看我来,我看你 这是什么歌啊? 你看我我看你 这是哪首歌的歌词 杨琴,我看你这两天有点不开心,是不是我说错啦? 你好,我看你这个批量处理,批量修改文件名,包含子文件夹的文件名,我复制过来怎么用不了 刚去进厂,厂里面有个男的说,我看你这个样子做不了一个星期,他为什么怎么说? 难受不是说难受就难受 是打心里的难受 我看你这还得说呢咋? 这句话什么意 我妈说小王要是找个好女人,好老婆在家里一家人过得很好,很幸福,我看你这辈子怎么办的是什么意思? 看不懂。我看你这表有一个总用和一个剩余,是不是灯在剩余亮的时候,显示的数字就是剩余多少钱 现在的人啊,尤其是读书人,越读你就越脑残了,说易学是迷信,说佛教是迷信,说生辰八字是迷信,我看你这 有一部视频里出现了这段情景?我这是lv牌纸内裤,另一个人说,我看你这是野驴牌内裤,