异常概念
异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。
一般情况下,在Python无法正常处理程序时就会发生一个异常。
异常是Python对象,表示一个错误。
当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。
异常处理
捕捉异常可以使用try…except语句。
中文语法为:
try:
语句 #运行别的代码
except 名字: #名字处填的是异常的名字
<语句> #如果在try部份引发了'name'异常
except 名字,数据:
语句> #如果引发了'name'异常,获得附加的数据
else:
语句 #如果没有异常发生
try的工作原理,就是在程序遇到try语句开始之后,python就开始做出标记,这样当遇到异常的时候,程序就会回到这里。如果遇到except中的异常,就会返回自己设置的异常名,如果是非定义的异常,则会返回python默认的异常名,如果没有异常,则会运行else中的语句,例:
dict1 = {'a': 1, 'b': 2, 'v': 22}
try:
x = dict1['y']
except LookupError:
print('查询错误')
except KeyError:
print('键错误')
else:
print(x)
返回
查询错误
还可以使用except语句处理多个异常信息,语句如下:
try:
正常的操作
except(Exception1[, Exception2[,...ExceptionN]]]):
发生以上多个异常中的一个,执行这块代码
else:
如果没有异常执行这块代码
try - except - finally 语句
不管try - except语句有没有运行,最后的finally都会运行,例:
dict1 = {'a': 1, 'b': 2, 'v': 22}
try:
x = dict1['y']
except LookupError:
print('查询错误')
finally:
print('我是finally语句')
查询结果:
查询错误
我是finally语句
raise语句
raise语句自己触发异常,语法如下:
raise [Exception [, args [, traceback]]]
例:
try:
raise NameError('Hello World')
except NameError:
print('My Name is Hello World!')
输出结果:
My Name is Hello World!
简单来说,try- except就是一个被动技能,需要有错误才能被触发,而raise是一个主动技能,能主动触发错误,输出错误信息。
学习地址为阿里天池的阿里天池龙珠计划python训练营,地址:https://tianchi.aliyun.com/s/bcfaedf7a7961e48effcc495bd5ee9d0