我写了这个程序:
def fun():
try: 1/0
except: fun()
fun()
我以为我会得到一个异常,但相反,我得到了以下致命错误:
Fatal Python error: Cannot recover from stack overflow.
Current thread 0x00003bec (most recent call first):
File "<stdin>", line 2 in fun
File "<stdin>", line 3 in fun
(该File "<stdin>", line 3 in fun行显示 98 次)然后程序崩溃(而不是引发异常)。
我真的不明白为什么会发生这种情况。当我在没有错误的情况下运行上述程序时,它只会引发异常:
def fun():
fun()
fun()
引发以下异常:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in fun
File "<stdin>", line 2, in fun
File "<stdin>", line 2, in fun
[Previous line repeated 995 more times]
RecursionError: maximum recursion depth exceeded
但是当代码出错时,程序就会崩溃。
谁能向我解释为什么会发生这种情况?
拉莫斯之舞
相关分类