python学习笔记之异常(内置标准异常总结)

本文详细介绍了Python的异常处理机制,包括基本结构、捕捉多个异常、自定义异常类等。通过具体示例展示了raise语句的各种用法,如指定异常信息、异常链和assert语句。同时,还探讨了如何使用finally关键字确保特定代码段的执行,以及如何创建和使用自定义异常类来扩展Python的异常系统。
摘要由CSDN通过智能技术生成

python异常处理机制

异常处理是python的一种高级工具,当异常发生时,程序会停止当前的所有工作,跳转到异常处理部分去执行。异常既可以是程序错误引发的,也可以由代码主动触发。

异常处理基本结构

try:
	可能引发异常的代码
except 异常类型名称:
	异常处理代码
else:
	没有发生异常时执行的代码

异常报错:

tryclass test:
		def getdata(self):
			return self.data
	y = test()
	y.getdata()
except AttributeError:
	print('出错了:访问对象属性出错')
else:
	print('程序中没有发生错误')
print('程序执行完毕!')

结果:

出错了:访问对象属性出错!
程序执行完毕

测试else部分执行

tryclass test:
		def getdata(self):
			return self.data
	y = test()
	y.data=100
	y.getdata()
except AttributeError:
	print('出错了:访问对象属性出错')
else:
	print('程序中没有发生错误')
print('程序执行完毕!')

结果:

程序中没有发生错误
程序执行完毕!

捕捉多个异常

在异常处理结构中,可以使用多个except语句,以捕捉可能出现的多种异常

x=[1,2]
try:
	x[0]/0
except ZeroDivisionError:
	print('除0错误')
except IndexError:
	print('索引下标超出范围')
else:
	print('没有错误')

结果:

0错误

引发不同异常

x=[1,2]
try:
	x[2]/2
except ZeroDivisionError:
	print('除0错误')
except IndexError:
	print('索引下标超出范围')
else:
	print('没有错误')

结果

索引下标超出范围

except…as与统一处理

x=[1,2]
try:
	x[0]/0
except (ZeroDivisionError,IndexError) as exp:
	print('出错了:')
	print('异常类型:',exp.__class__.__name__)
	print('异常信息:',exp)
else:
	print('没有错误')

结果

出错了:
异常类型:ZeroDivisionError
异常信息:division by zero

执行另一个异常

x=[1,2]
try:
	x[2]/2
except (ZeroDivisionError,IndexError) as exp:
	print('出错了:')
	print('异常类型ÿ
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值