Python的异常捕获

什么是异常?

异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。 一般情况下,在Python无法正常处理程序时就会发生一个异常。 异常是Python对象,表示一个错误。 当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

异常处理

捕捉异常可以使用try/except语句。 try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。 如果你不想在异常发生时结束你的程序,只需在try里捕获它。

语法

try: 
	<语句> 			#运行别的代码 
except <名字><语句> 			#如果在try部份引发了'name'异常 
else: 
	<语句> 			#如果没有异常发生

示例

try:
	open("qwe.txt","r") 
	print("123") 
except FileNotFoundError: 
	print("异常处理") 
else:
	print("没有异常")

try:
	open("qwe.txt","r") 
	print("123") 
except FileNotFoundError as result: 
	print("异常处理",result) 
else:
	print("没有异常")

使用except而不带任何异常类型

语法

try:
	正常的操作 
except : 
	发生异常,执行这块代码 
else:
	如果没有异常执行这块代码

try:
	open("qwe.txt","r") 
	print("123") 
except : 
	print("异常处理") 
else:
	print("没有异常")

使用except而带多种异常类型

语法

try:
	异常的操作 
except(Exception1[, Exception2[,...ExceptionN]]]): 
	发生以上多个异常中的一个,执行这块代码 
	...................... 
else:
	如果没有异常执行这块代码

list = [1,2,3,4] 
try:
	open("qwe.txt", "r") 
	list[7] 
except (NameError,FileNotFoundError) as rese: 
	print("出现异常") 
else:
	print("没有异常")

try-finally 语句

try-finally 语句无论是否发生异常都将执行最后的代码
语法

try: 
	<语句> 
finally: 
	<语句> #退出try时总会执行

try:
	fh = open("test.txt", "r") 
	fh.readlines() 
	fh.close() 
finally: 
	print("Error: 没有找到文件或读取文件失败")

注意:
当在try块中抛出一个异常,立即执行finally块代码。
finally块中的所有语句执行后,异常被再次触发,并执行except块代码。
参数的内容不同于异常

异常的传递

def func1(): 
	print("---func1--1---") 
	print(num) 
	print("---func1--2---") 
# def func2(): 
	# print("--func2--1---") 
	# func1() 
	# print("--func2--2---") 
def func3(): 
	try:
		print("---func3--1---") 
		func1() 
		print("--func3--2----")
	except Exception as result: 
		print(result) 
		print("--func3---3---") 
func3() 
#func2()
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值