2012-06-27 15 views
7
try: 
    recursive_function() 
except RuntimeError e: 
    # is this a max. recursion depth exceeded exception? 

मैं कैसे कहूं कि अधिकतम रिकर्सन गहराई कब पहुंच गई है?मैं अधिकतम का पता कैसे लगा सकता हूं। पाइथन में रिकर्सन गहराई अपवाद से अधिक है?

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

मुझे नहीं लगता कि आप, हालांकि यह और कुछ बीच भेद कर सकते महज एक प्रत्यावर्तन गहराई-पार हो गई (क्रम) अपवाद होने का नाटक करते हैं:

उत्तर

8

आप अपवाद के अंदर ही देख सकते हैं। message बहिष्कृत है, इसलिए args शायद सबसे अच्छा शर्त है, और Python-3 संगत है।


अद्यतन: अजगर 3.5 में, किसी विशिष्ट RecursionError जो आप के बजाय पकड़ कर सकते हैं।

संबंधित मुद्दे