相比于直接raise ValueError,使用try-except可以使程序在发生异常后仍然能够运行。
在try的部分中,当遇到第一个Error,就跳转到except中寻找对应类型的error,后续代码不再执行,如果try中有多个Error,注意顺序。以下程序可用于查看try-except的运行顺序。
z = 0
n = 1
def func(n, z):
try:
a = n / z
if n == 1:
raise ValueError("value error")
# a = n / z
except ZeroDivisionError as ze:
print(f"here is {ze}")
a = 2 #为了让程序有error的时候也能返回一个a, 当然也可以在外面先给a一个默认值。
except ValueError as ve:
print(f"here is {ve}")
a = 2 #为了让程序有error的时候也能返回一个a, 当然也可以在外面先给a一个默认值。
return a
res = func(n, z)