异常和异常处理语法详解
异常
Python运行程序出现不正常的情况,默认设置是在遇到异常时,抛出错误,程序停止运行。
异常的种类
- 语法异常
是程序编写过程中出现了语法错误,不能运行,一般有提示出现,是未运行前出错。 - 运行中异常
语法没有错误,但在运行中出现错误,是运行中的异常。- 通常有调用不属于类型的功能,未定义先调用,数值问题,索引问题,属性问题等。
捕获异常和异常的处理方案
- try…except…
try:
可能出错语句
except:
出错时执行语句
代码展示:
try:i = 1for n in range(0,i):print(n)#如果无措执行完毕,不执行expectprint(f'无异常')
except:print('处理异常')print('___'*10)
try:i = 1for n in range(0,i):print(n)#至出错前都执行,出错语句不执行,并执行expect语句print(f'异常{c}')
except:print('处理异常')
运行结果:
- try…except…else…
try:
可能出错语句
except:
出错时执行语句
else:
try无错时执行的语句
代码展示:
try:i = 1for n in range(0,i):print(n)#至出错前都执行,出错语句不执行,并执行expect语句print(f'异常{d}')
except:print('处理异常')
else:print('else')
print('_'*30)try:i = 1for n in range(0,i):print(n)#至出错前都执行,出错语句不执行,并执行expect语句print(f'异常{0}')
except:print('处理异常')
else:#try无异常执行elseprint('try无异常执行else')
运行结果:
- finally子句
finally无论是否异常都执行,一般存放释放资源的代码逻辑。
代码展示:
try:i = 1for n in range(0,i):print(n)
except:print('处理异常')
else:print('else')
finally:print('finally语句')print('_'*50)
#finally无论是否异常都执行
try:i = 1for n in range(0,i):print(n)#至出错前都执行,出错语句不执行,并执行expect语句print(f'异常{0}')
except:print('处理异常')
else:#try无异常执行elseprint('try无异常执行else')
finally:print('finally语句')
运行结果: