异常
程序在运⾏过程中可能会出现⼀些错误。⽐如: 使⽤了不存在的索引,两个不
同类型的数据相加…这些错误我们称之为异常
处理异常 程序运⾏时出现异常,⽬的并不是让我们的程序直接终⽌!Python
是希望在出现异常时,我们可以编写代码来对异常进⾏处理
异常的传播:
当在函数中出现异常时,如果在函数中对异常进⾏了处理,则异常不会在进⾏传播。如果函数中没有对异常进⾏处理,则异常会继续向函数调⽤传播。
如果函数调⽤处处理了异常,则不再传播异常,如果没有处理则继续向调⽤处传播。直到传递到全局作⽤域(主模块)如果依然没有处理,则程序终⽌,并显示异常信息。
当程序运⾏过程中出现异常以后,所有异常信息会保存到⼀个异常对象中。⽽异常传播时,实际上就是异常对象抛给了调⽤处。
try语句
try:
代码块(可能出现错误的语句)
except 异常类型 as 异常名:
代码块(出现错误以后的处理⽅式)
except 异常类型 as 异常名:
代码块(出现错误以后的处理⽅式)
except 异常类型 as 异常名:
代码块(出现错误以后的处理⽅式)
.......
else:
代码块(没出错时要执⾏的语句)
finally:
代码块(是否出错该代码块都会执⾏)
try是必须的 else有没有都可以
except和finally⾄少有⼀个
捕获异常:
细分错误 非常有用 非常有必要的
细分错误 一般用于 载入日志
try:
li = [1,2,3]
li[2] # 不走except内部
# li[3] # 走except内部
# int('a') # ValueError
except IndexError as e:
print(e) # 载入日志
except ValueError as e:
print(e) # 载入日志
except Exception as e:
print(e)
else:
print("程序正常的话,执行的代码")
finally:
print("不管程序怎样,都执行")
主动抛出异常:
def db():
# 某块报错 告诉使用者
raise Exception("数据库处理错误")
def demo():
try:
db()
except Exception as e:
print("db函数错误",e) #载入日志
try:
li = [1,2,3]
li[3]
except Exception as e:
print("自身错误:",e)
demo()
本文详细介绍了Python中的异常处理机制,包括异常的概念、异常的传播方式、如何使用try-except语句来捕获和处理异常,以及如何主动抛出异常。通过实例展示了不同类型的异常及其处理方法。
8773

被折叠的 条评论
为什么被折叠?



