try:
可能会出现的异常的,写在try里面
except 具体异常的信息 as 别名
如:
try:file =open(test.txt,w,encoding=utf-8)res = file.read()进行读操作,异常可能会出现在这里
except BaseException as e:只要是常规错误都能打印file.write(出现异常:{}.format(e))出现异常把异常信息写入到file文件中,e是异常取的别名print(有这条信息说明进入到了异常信息里面)
异常被写入到了test.txt文件中,except BaseExecption 这个常规异常,只要是常规的异常都会被写入到文件中,有时候我们不需要一些没有的异常被写入,此时,我们就需要进行对异常进行分类,定位可能属于哪种异常,然后精准的抛出异常,
比如上一个问题,我们就知道,try里面可能会抛出的异常就是读写的异常,此时,我们就可以对异常进行精准的抛出
execpt 后面就可以写成 execpt IOError 就可以抓取到对应的错误
try:file =open(test.txt,w,encoding=utf-8)res = file.read()进行读操作,异常可能会出现在这里except IOError as e:只要是常规错误都能打印file.write(出现异常:{}.format(e))出现异常把异常信息写入到file文件中,e是异常取的别名print(有这条信息说明进入到了异常信息里面)
如果我们把异常写错,就会抛出新的异常,如,本来我们可能会出现的异常类型为读写类型的,结果把execpt后面写成变量变量名错误,那就会抛出新的异常
try:file =open(test.txt,w,encoding=utf-8)res = file.read()进行读操作,异常可能会出现在这里except NameError as e:只要是常规错误都能打印file.write(出现异常:{}.format(e))出现异常把异常信息写入到file文件中,e是异常取的别名print(有这条信息说明进入到了异常信息里面)
filetry:file =open(test.txt,w,encoding=utf-8)res = file.read()进行读操作,异常可能会出现在这里except BaseException as e:只要是常规错误都能打印file.write(出现异常:{}.format(e))出现异常把异常信息写入到file文件中,e是异常取的别名print(有这条信息说明进入到了异常信息里面)try:file =open(test.txt,w,encoding=utf-8)res = file.read()进行读操作,异常可能会出现在这里except NameError as e:只要是常规错误都能打印file.write(出现异常:{}.format(e))出现异常把异常信息写入到file文件中,e是异常取的别名print(有这条信息说明进入到了异常信息里面)try:file =open(test.txt,w,encoding=utf-8)res = file.read()进行读操作,异常可能会出现在这里except IOError as e:只要是常规错误都能打印file.write(出现异常:{}.format(e))出现异常把异常信息写入到file文件中,e是异常取的别名print(有这条信息说明进入到了异常信息里面)
多异常处理
如果try可能会出现多个异常,此时就可以+定义多个execpt 此时只要有一处异常出现,就会停止后面的操作,对应的异常就会出现在对应execpt里面
L=[1,2,3,4]定义了一个列表try:file =open(test.txt,w,encoding=utf-8)print(L[4])取出列表中的索引为4的值,很明显列表中最大的索引是3,会抛出异常res = file.read()进行读操作,异常可能会出现在这里except IOError as e:只要是常规错误都能打印file.write(出现异常:{}.format(e))出现异常把异常信息写入到file文件中,e是异常取的别名print(有这条信息说明进入到了异常信息里面)except IndexError as e:定义索引异常的错误,如果出现索引异常就会执行这里面的代码file.write(索引异常:{}.format(e))如果出现索引异常就写入到file文件中print(如果出现该内容说明已经出现了索引异常)
也可以把两个不同的异常写在一个execpt中,如 execpt (IOError,NameError )as e此时只要满足其中一个就可以进入到execpt中把异常写入到文件中
L=[1,2,3,4]定义了一个列表try:file =open(test.txt,w,encoding=utf-8)print(L[4])取出列表中的索引为4的值,很明显列表中最大的索引是3,会抛出异常res = file.read()进行读操作,异常可能会出现在这里except (IOError,IndexError) as e:只要是常规错误都能打印file.write(出现异常:{}.format(e))出现异常把异常信息写入到file文件中,e是异常取的别名print(有这条信息说明进入到了异常信息里面)
一个try里面也可以在切套一个try,就类似与if。。。 else。。。。
L=[1,2,3,4]定义了一个列表try:file =open(test.txt,w,encoding=utf-8)try:print(L[4])取出列表中的索引为4的值,很明显列表中最大的索引是3,会抛出异常except IndexError as e: 定义索引异常的错误,如果出现索引异常就会执行这里面的代码file.write(索引异常:{}.format(e)) 如果出现索引异常就写入到file文件中print(如果出现该内容说明已经出现了索引异常)res = file.read()进行读操作,异常可能会出现在这里except IOError as e:只要是常规错误都能打印file.write(\n出现异常:{}.format(e))出现异常把异常信息写入到file文件中,e是异常取的别名print(有这条信息说明进入到了异常信息里面)
异常处理try…execpt…finally
finally不管执行try还是execpt ,最后的finally都会被执行,应用场景,在try和execpt定义同一个变量,不同的值,此时就可以finally统一进行对不同结果的处理
L=[1,2,3,4]定义了一个列表try:file =open(test.txt,w,encoding=utf-8)try:print(L[2])except IndexError as e: 定义索引异常的错误,如果出现索引异常就会执行这里面的代码file.write(索引异常:{}.format(e)) 如果出现索引异常就写入到file文件中print(如果出现该内容说明已经出现了索引异常)finally:print(没有出现异常,执行了try里面的代码,最后会执行到finally)res = file.read()进行读操作,异常可能会出现在这里except IOError as e:只要是常规错误都能打印file.write(\n出现异常:{}.format(e))出现异常把异常信息写入到file文件中,e是异常取的别名print(有这条信息说明进入到了异常信息里面)finally:print(读操作不执行,会抛出异常,所有会走execpt ioerror里面,但是最后finally也会被执行)
异常处理try…execpt…else
异常处理try…execpt…else是就是只要try不报错的情况下才会执行else里面的文件,如果能进入到execpt中那else中的代码就不会被执行
L=[1,2,3,4]定义了一个列表try:file =open(test.txt,w,encoding=utf-8)try:print(L[2])except IndexError as e: 定义索引异常的错误,如果出现索引异常就会执行这里面的代码file.write(索引异常:{}.format(e)) 如果出现索引异常就写入到file文件中print(如果出现该内容说明已经出现了索引异常)else:print(没有出现异常,执行了try里面的代码,最后会执行到else里面)res = file.read()进行读操作,异常可能会出现在这里except IOError as e:只要是常规错误都能打印file.write(\n出现异常:{}.format(e))出现异常把异常信息写入到file文件中,e是异常取的别名print(有这条信息说明进入到了异常信息里面)else:print(读操作不执行,会抛出异常,所有会走execpt ioerror里面,所以就不会执行else)
with….as….上下文管理器
with open(test.txt,w,encoding=utf-8 ) as file:
file.write(吾爱乐享)
使用with as 自动关闭open打开的文件,只要在with里面的子代码打开文件都会自动关闭
声明:本文部分素材转载自互联网,如有侵权立即删除 。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
丞旭猿论坛
暂无评论内容