[python基础] Part_6 异常

本文详细介绍了Python中异常处理的基本概念,包括try-except语句的使用,如何捕获特定类型的异常,以及如何自定义异常类型。同时,还讲解了如何使用raise主动抛出异常,以及断言assert的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码在运行中出现错误就是异常

print(a)
#运行结果:
NameError: name 'a' is not defined

异常本身也是类,大多数异常的顶级父类是Exception.

异常处理

异常处理语句try except

try:	#首先写一个try,然后把可能出错的代码丢进去
    print(a)	
except NameError as e1:	#捕获NameError异常信息储存到变量a中
    print(e1)			#打印a的内容,也就是错误信息
except Exception as e2:	#Exception是所有异常的父类,因此不能放在普通异常之前
    print('不确定异常类型')
    print(e2)
else:			#没有问题就会执行else
    print('没有出现错误,程序运行成功')
finally:		#有没有问题都会执行finally
    print('代码执行完成')	
#运行结果:
name 'a' is not defined
Done

在捕获异常的过程中,会从上倒下依次对比异常,找到之后就不会再往后查找

还可以在except后写多个异常类型,统一进行处理

try:
    pass	
except (NameError,TypeError):
    pass

查看报错时,要查看报错原因、报错的行以及执行的代码,通过错误回溯,可以直接查看到这些内容
在请求他人帮助解决问题时,应将如上信息和相应代码发送过去,这样才能帮助你解决问题,节省解决错误的时间

抛出异常raise

raise 可以主动抛出异常

raise TypeError('This is TypeError')	#括号中写入报错时提示的信息
#运行结果:
TypeError: This is TypeError
自定义异常类型

通过raise还可以写一个自己的异常类型

class CustomError(Exception):
    pass

raise CustomError('This is CustomError')
#运行结果:
__main__.CustomError: This is CustomError

断言 assert

判断真假,表达式返回 True 不报错,表达式返回 False 报错AssertionError

a = 1
assert a==2,'a的值是1'	#后面可以加上报错时的提示信息
print(a)
#运行结果:
AssertionError: a的值是1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值