python异常处理
为何要进行异常处理:因为在正常情况下,当程序出现错误时,程序抛出异常,并且会自动终止运行。而有时候我们希望,当程序出错时,程序既能抛出异常,又能不中断运行,又或者,在有的时候,在某个特定的条件下,我需要程序去抛出异常,从而中断程序,因此便有了“异常处理”!
一、try:except:用法
程序正常运行,则执行try里面的代码,程序异常,则执行except里面的代码,except可捕获多个具体异常。
# 例如
number = 20
a = [-4, -2, 0, 2, 4]
for i in range(len(a)):
try:
result = number/a[i] # 分母为0时,抛出异常
print(result)
except Exception as e: # 所有的普通异常都包含在Exception里面
print("出错啦!", e)
运行结果
更加丰富的结构
# 例如
try:
print("我是尝试运行")
except NameError: # 捕获具体异常
print("命名错误!")
except ZeroDivisionError:
print("分母不能为0")
else:
print("我是try执行完后,执行")
finally:
print("无论如何,我最终都会执行")
运行结果
二、raise用法
在某个特定的条件下,抛出异常,从而中断程序
# 例如
name = input("请输入您的用户名:")
if name == "小明":
raise ("黑名单用户,禁止登登录!") # raise自定义自动抛出异常
运行结果
三、assert断言
# 例如
a = 2
b = 3
assert a < b # 当条件为True时,正常运行
print("前面ok")
assert a > b # 当条件为False时,程序抛出异常,程序中断
print("我是后面的")
运行结果