"""
1、什么是异常
异常是错误发生的信号,一旦程序出错就会产生一个异常
如果该异常没有被处理,该异常就会被抛出来,程序的运行随即终止
异常是由三部分组成
1、具体哪一行代码抛出的异常
2、异常的种类
NameError:变量名没有定义过
IndexError:索引不存在
l=[11,22]
l[100]
KeyError
d={"k1":11}
d["k2"]
AttributeError:对象属性不存在
对象.属性
ValueError:
int("asdf")
TypeError:
"asdf"+1111
ZeroDivisionError
1/0
3、异常的内容信息
2、为何要处理异常
为了增强程序的健壮性
3、如何处理异常
1、针对语法的错误:应该在程序运行前立即改正
2、针对逻辑错误:
2.1 如果逻辑错误发生的条件是可以预知的,应该if判断解决,预防异常
age = input('>>: ').strip()
if age.isdigit():
age=int(age)
if age > 18:
print('too big')
elif age < 18:
print('too small')
else:
print("got it")
else:
print('必须输入数字')
2.2 如果逻辑错误发生的条件是不可预知的,那么异常一个会发生,考虑到程序的健壮性
我们应该处理异常,做好补救措施
try:
代码块
except 异常的类型:
发生异常后要执行的代码
"""
# 例1
# try:
# print("====>111")
# print("====>222")
# xxx
# print("====>333")
# except AttributeError as e:
# print(e)
#
# print('====>4')
# 例2
# try:
# print("====>111")
# print("====>222")
# xxx
# print("====>333")
# except NameError as e:
# print(e)
#
# print('====>4')
# # 例3
# try:
# print("====>111")
# print("====>222")
# # xxx
# # l=[]
# # l[0]
# dic={}
# dic["k1"]
# print("====>333")
# except (NameError,IndexError) as e:
# print("=---->",e)
# except KeyError as e:
# print(e)
#
# print('====>4')
# # 例4
# try:
# print("====>111")
# print("====>222")
# xxx=111
# # l=[]
# # l[0]
# dic={}
# # dic["k1"]
# print("====>333")
# except (NameError,IndexError) as e:
# print("=---->",e)
# except KeyError as e:
# print(e)
# finally:
# print("一定会运行")
# print('====>4')
# # print(xxx)
# # 例4
# try:
# print("====>111")
# print("====>222")
# finally:
# print("一定会运行")