7
try:
    recursive_function()
except RuntimeError e:
    # is this a max. recursion depth exceeded exception?

如何判断何时达到最大递归深度?

4

1 回答 1

8

您可以查看异常本身:

>>> def f():
...     f()
... 
>>> try:
...     f()
... except RuntimeError as re:
...     print re.args, re.message
... 
('maximum recursion depth exceeded',) maximum recursion depth exceeded

不过,我认为您无法区分这与仅仅假装是超出递归深度(运行时)异常的东西。 message已弃用,因此args可能是最好的选择,并且与 Python-3 兼容。


更新:在 Python 3.5 中,您可以使用特定的RecursionError方法来代替。

于 2012-06-27T18:55:29.957 回答