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

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('异常类型ÿ

你可能感兴趣的:(Python学习笔记,python,软件测试)