Python入门(十二)

异常处理

  • 在程序运行过程中,总会遇到各种异常,如数据类型不正确、符号不正确、方法文件不存在等,我们通常使用try…except来捕获及处理异常
print('-----point-1-----')#输出
open('1234.txt')#通常此处没有123.txt这个文件时,程序执行起来会报错
print('-----point-2-----')#没有输出
#如下

在这里插入图片描述

try…except

#为了让程序不报错
try:
	print('-----point-1-----')#输出
	open('1234.txt')#通常此处没有123.txt这个文件时,程序执行起来会报错
	print('-----point-2-----')#没有输出
except IOError:#FileNotFoundError是IOError的子类,所以会被捕获
	print('程序出错了')
	#输出如下

在这里插入图片描述

#同时我们可以输出错误类型
try:
	print(num)
	print('-----point-1-----')
	open('1234.txt')
	print('-----point-2-----')
except (IOError,NameError) as result1:#可以以元组的方式,指定多个异常种类
#并且可以将异常信息通过as指定存入一个变量中
	print(result1)
	print('程序出错了')
	#输出如下

在这里插入图片描述

try…finally

  • 在程序中,如果一段代码必须要执行,即无论异常是否产生都要执行(前面例子出现异常之后的代码块都不执行了),那么此时就要用到finally。比如文件关闭,释放锁,把数据库链接返还给连接池等。
  • 在本节文件操作中,finally主要用途是关闭文件
try:
	f = open('123.txt')
except Exception as result:#Exception是所有异常的父类
	print('发生异常。。。')
finally:
	f.close()
	print('文件关闭')
#结果如下

在这里插入图片描述

因为文件f并没有被打开,所以无法关闭导致出错

  • 解决方法:
try:
	f = open('123.txt')
	#如果打不开则直接进入except,不会执行并进入下面带有finally的代码块
	#如果打得开,则进入下面带有finally的代码块,最终也会关闭文件
	try:#异常捕获的嵌套
		pass
	finally:
		f.close()
except Exception as result:
	print('文件出错了')
	print(result)

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值