Usted puede mirar en el interior del propio excepción:
>>> def f():
... f()
...
>>> try:
... f()
... except RuntimeError as re:
... print re.args, re.message
...
('maximum recursion depth exceeded',) maximum recursion depth exceeded
No creo que se pueda distinguir entre esto y algo meramente pretendiendo ser una excepción de la recursividad de profundidad superado (tiempo de ejecución), sin embargo. message
está en desuso, por lo que args
es probablemente la mejor opción, y es compatible con Python-3.
Actualización: en Python 3.5, hay una específica RecursionError
la que se puede tomar su lugar.