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

Maksimum yineleme derinliğine ulaşıldığında nasıl anlarım? Ben de, bu ve bir şey arasında sadece bir özyineleme derinliği-aşıldı (Runtime) istisna gibi davranarak ayırt sanmıyorumMaks. yineleme derinliği Python'da istisnayı aştı mı?

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

:

cevap

8

Sen istisna nun içine bakabilirsiniz. message kullanımdan kaldırılmıştır, bu nedenle args muhtemelen en iyi seçimdir ve Python-3 uyumludur.


Güncelleme: Python 3.5, bunun yerine yakalamak belirli RecursionError var.

İlgili konular