我只是通过阅读一本书来学习Python,下面的代码用于显示try和except命令。那些是有道理的,但我的问题是关于输出。执行后,在垃圾邮件(0)产生错误后,在下一行显示“无”,然后是“42”。“无”来自何处?
def spam(divideBy):
try:
return 42 / divideBy
except ZeroDivisionError:
print('Error')
print(spam(2))
print(spam(12))
print(spam(0))
print(spam(1))
答案 0 :(得分:2)
在Python中,没有return
语句的函数返回None
。因此捕获异常并返回函数,然后执行下一行。
如果except
块再次引发异常,那么函数将不会返回,而是会抛出异常。