学习Python对异常处理,让你轻松入门Python!

1.异常简介

异常是什么?什么时候会发生异常?话不多说,直接上代码。

当打开一个不存在的文件时,对文件操作比较熟悉就知道,一定会报错,不信的话,咱们试试?

print("----test1------")
f = open("123.txt","r") # 打开123.txt文件
print("----test2--------")

运行结果:

----test1------
Traceback (most recent call last):
  File "F:/pythonProject/pythonProject/demo3-4.py", line 8, in <module>
    f = open("123.txt","r")
FileNotFoundError: [Errno 2] No such file or directory: '123.txt'

说明:

打开一个不存在的文件123.txt,当找不到123.txt 文件时,就会抛出给我们一个IOError类型的错误,No such file or directory:123.txt (没有123.txt这样的文件或目录)

2.异常的概念

当Python检测到一个错误时,解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的"异常"

3.捕获异常

i.try…except…

代码示例:

try:
    print("----test1------")
    f = open("123.txt", "r")
    print("----test2--------")
except IOError:
    pass

运行结果:

----test1------

说明:

  • 此程序看不到任何错误,因为用 except 捕获到了IOError异常,并添加了处理的方法
  • pass 表示实现了相应的实现,但什么也不做;如果把pass改为print语句,那么就会输出其他信息
  • 把可能出现的异常的代码放在try中,把会出现异常结果写在except中
  • except可以捕获多个异常,用括号括起来,逗号隔开 ,示例如下

当出现多个异常时

代码示例:

try:
    print("----test1------")
    f = open("123.txt", "r")
    print("----test2--------")
    
    print(num)
except (IOError,NameError): #捕获多个异常的写法
    print("产生了异常")

4.捕获异常信息

代码示例:

try:
    print("----test1------")
    f = open("123.txt", "r")
    print("----test2--------")
    
    print(num)
except (IOError,NameError) as result: #捕获多个异常的写法,将异常信息存储在result中进行打印
    print("产生了异常")
    print(result)

5.try…except…finally…

在程序中,如果一个段代码必须要执行,即无论异常是否产生都要执行,那么此时就需要使用finally。 比如文件关闭,释放锁,把数据库连接返还给连接池等

代码示例:

import time
try:
	f = open('test.txt')
	try:
		while True:
		content = f.readline()
		if len(content) == 0:
			break
		time.sleep(2)
		print(content)
	except:
		#如果在读取文件的过程中,产生了异常,那么就会捕获到
		#比如 按下了 ctrl+c
	pass
	finally:
		f.close()
		print('关闭文件')
except:
	print("没有这个文件")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QZP51ZX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值