Articles of excepción

¿Cómo puedo incluir correctamente la syntax de excepción de Python 3.3 from None en un progtwig de Python 3.2?

Estoy intentando volver a generar una excepción para proporcionarle al usuario mejor información sobre el error real. Python 3.3 incluye PEP 409 . Agrega la syntax de la excepción raise NewException from None la raise NewException from None para suprimir el contexto de la excepción original. Sin embargo, estoy apuntando a Python 3.2. La secuencia […]

Consigue la última excepción en pdb

¿Hay alguna forma de examinar la última excepción cuando se encuentra en pdb / antes de ingresar pdb? (Utilizando python 2.7.5). Inmediatamente (sí, no ingreso ningún otro comando) después de que se sys.exc_info() una excepción en mi código, hago sys.exc_info() ; esto solo da como resultado (None, None, None) . En este punto, puedo hacer […]

¿Por qué recibo un error de encoding ASCII con datos Unicode en Python 2.4 pero no en 2.7?

Tengo un progtwig que, cuando se ejecuta en Python 2.7, produce una salida Unicode adecuada a la salida estándar. Cuando se ejecuta en Python 2.4, obtengo UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 1-4: ordinal not in range(128) . ¿Qué cambió entre la versión 2.4 y 2.7 que esto funciona ahora?

¿La gestión de excepciones de Python es más eficiente que PHP y / u otros idiomas?

Lo he perforado en mi cabeza que (al menos en PHP) es badbadmojo usar bloques try… catch para controlar el flujo. Lo que aprendí es usarlos solo para manejar errores inesperados , no para determinar el flujo lógico del progtwig, porque catch bloques de catch son costosos. Ahora que estoy aprendiendo python, veo muchas excepciones […]

Errores de captura en asyncio.ensure_future

Tengo este codigo try: asyncio.ensure_future(data_streamer.sendByLatest()) except ValueError as e: logging.debug(repr(e)) data_streamer.sendByLatest() puede generar un ValueError , pero no se captura.

Generar excepciones cuando ya existe una excepción en Python 3

¿Qué sucede con mi primera excepción ( A ) cuando la segunda ( B ) aparece en el siguiente código? class A(Exception): pass class B(Exception): pass try: try: raise A(‘first’) finally: raise B(‘second’) except X as c: print(c) Si se ejecuta con X = A obtengo: Rastreo (llamadas recientes más última): Archivo “raise_more_exceptions.py”, línea 6, […]

¿Cómo obtener el último objeto de excepción después de que se genere un error en un indicador de Python?

Al depurar el código de Python en el indicador interactivo (REPL), a menudo escribo un código que genera una excepción, pero no lo envolví en un try / except , por lo que una vez que surge el error, siempre he perdido el objeto de excepción. A menudo, la traza y el mensaje de error […]

Cómo detectar esta excepción de Python: error: El host remoto cerró a la fuerza una conexión existente

Estoy intentando capturar esta excepción particular (y solo esta excepción) en Python 2.7, pero parece que no puedo encontrar documentación en la clase de excepción. Hay uno [Errno 10054] An existing connection was forcibly closed by the remote host Mi código hasta ahora: try: # Deleting filename self.ftp.delete(filename) return True except (error_reply, error_perm, error_temp): return […]

Ignora las excepciones lanzadas y atrapadas dentro de una biblioteca.

La biblioteca estándar de Python y otras bibliotecas que uso (p. Ej., PyQt) a veces usan excepciones para condiciones sin error. Mire lo siguiente, excepto la función os.get_exec_path() . Utiliza varias declaraciones de try para detectar las excepciones que se producen al intentar encontrar algunos datos del entorno. try: path_list = env.get(‘PATH’) except TypeError: path_list […]

¿Cómo cambiar el mensaje en un Python AssertionError?

Estoy escribiendo según lo siguiente, en el que trato de producir un mensaje de error decente al comparar dos bloques multilínea de texto Unicode. El método interior que hace la comparación plantea una afirmación, pero la explicación por defecto es inútil para mí Necesito agregar algo al código como este a continuación: def assert_long_strings_equal(one, other): […]