¿Re.compile() o cualquier llamada a la biblioteca de Python genera una excepción?

StackOverflow https://stackoverflow.com/questions/58119

  •  09-06-2019
  •  | 
  •  

Pregunta

No puedo decir en la documentación de Python si la función re.compile(x) puede generar una excepción (suponiendo que pase una cadena).Me imagino que hay algo que podría considerarse una expresión regular no válida.La pregunta más importante es: ¿adónde puedo ir para saber si una determinada llamada a la biblioteca de Python puede generar excepciones y cuáles son?

¿Fue útil?

Solución

Bien, re.compile ciertamente puede:

>>> import re
>>> re.compile('he(lo')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python25\lib\re.py", line 180, in compile
    return _compile(pattern, flags)
  File "C:\Python25\lib\re.py", line 233, in _compile
    raise error, v # invalid expression
sre_constants.error: unbalanced parenthesis

La documentación admite esto, de manera indirecta: consulte la parte inferior de la página "Contenido del módulo" para obtener una descripción (breve) del error excepción.

Lamentablemente, no tengo ninguna respuesta a la pregunta general.Supongo que la documentación de los distintos módulos varía en calidad y minuciosidad.Si hubiera módulos específicos que le interesaran, es posible que pueda descompilar ellos (si están escritos en Python) o incluso mira la fuente, si están en la biblioteca estándar.

Otros consejos

A diferencia de Java, donde hay excepciones que deben declararse para ser generadas (y algunas que no tienen que serlo, pero esa es otra historia), cualquier código Python puede generar cualquier excepción en cualquier momento.

Hay una lista de excepciones incorporadas, que generalmente tiene alguna descripción de cuándo podrían plantearse estas excepciones.Depende de usted cuánto manejo de excepciones realizará y si manejará las cosas con elegancia o simplemente fallará con un rastreo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top