2012-06-27 15 views

Odpowiedz

8

Możesz zajrzeć wyjątkiem samego:

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

Nie sądzę, że można rozróżnić między tym i coś po prostu udając (Runtime) wyjątek rekurencji dogłębnej-przekroczony, choć. message jest przestarzałe, więc prawdopodobnie najlepszym rozwiązaniem jest args i jest zgodny z Python-3.


Aktualizacja: w Pythonie 3.5, istnieje specyficzny RecursionError które można złapać zamiast.

Powiązane problemy