赞
踩
【异常在python中是一个对象】
异常简单理解,就是非正常,没有达到预期目标。
异常是一个事件,并且这个异常事件在我们程序员的运行过程中出现,会影响我们程序正常执行。
异常分两种:
语法错误导致的异常
逻辑错误导致的异常
#在程序无法正常运行处理时,就会出现一个异常,在python中异常是一个对象,表示一个错误。
#例如:获取一个不存在的索引
a = [1,2,3]
print(a[5])
>>>Traceback (most recent call last):
File "D:/学习笔记/新职课/第五章-模块,包与库训练/第六节/test.py", line 2, in <module>
print(a[5])
IndexError: list index out of range
#IndexError:异常类
#list index out of range 异常信息
#不同的异常有不同的类
如果错误发生的情况是可以预知的,那么就可以使用流程控制进行预防处理
a,b = 2, '3'
res = a + b
print(res)
#此时会报异常,类为TypeError
#此时错误的发生条件是可以预知的,因为如果要做+运算,要保证a和b可以相加
a,b = 2, '3'
if isinstance(b,int):
print(a+b)
#通过流程控制进行预防处理
如果错误的发生条件不可预知,就可以使用 try: … except: … 在错误发生时进行处理
语法:
try:
可能发生异常错误的代码
except:
如果发生异常则进入 except 代码块进行处理
'''
假设读取的文件不存在,会发生错误,可以使用两种方式进行处理,
1. 可以在文件读取前先判断当前的文件是否存在
2. 也可以使用try: ... except: ... 在错误发生时进行处理
注意:try: ... excep: ... 是在错误发生后进行的处理。和if有着根本性的区别。
if是避免了错误的发生,
try: ... excep: ...是错误确实发生了,但是程序还可以继续运行
'''
使用try: … except: … 处理指定的异常。如果引发了非指定的异常,则无法处理
try:
s1 = 'hello'
int(s1) # 会引发 ValueError
except ValueError as e:
# except IndexError as e: #如果引发了非指定的异常,则无法处理
print(e)
>>>invalid literal for int() with base 10: 'hello'
多分支处理异常类:不同的异常会走向不同的except处理
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。