Articles of manejo de excepciones

Obtenga la descripción de la excepción y el seguimiento de la stack que causó una excepción, todo como una cadena

He visto muchas publicaciones sobre el seguimiento de la stack y las excepciones en Python. Pero no he encontrado lo que necesito. Tengo un fragmento de código de Python 2.7 que puede provocar una excepción. Me gustaría capturarlo y asignar a una cadena su descripción completa y el seguimiento de la stack que causó el […]

Python Try-Except dentro de la función

Tengo una buena comprensión de la cláusula try-except de python, pero tengo problemas al intentar ponerla dentro de una función. >>> def tryAppend(child, parent): … try: … parent.append(child) … except NameError: … print “WRONG NAME” >>> var1 = [] >>> var2 = ‘test2’ >>> tryAppend(var2, var1) #works, no error >>> tryAppend(foo, var1) Traceback (most recent […]

Python: la captura de una excepción funciona fuera de una función pero no dentro de una función

Tengo un problema extraño que no puedo resolver yo mismo. Si ejecuto outside_func.py en dos terminales separados, la segunda ejecución detecta la excepción BlockingIOError y se imprime el mensaje: outside_func.py import fcntl import time # Raise BlockingIOError if same script is already running. try: lockfile = open(‘lockfile’, ‘w’) fcntl.flock(lockfile, fcntl.LOCK_EX | fcntl.LOCK_NB) except BlockingIOError: print(‘Script […]

Posibles excepciones usando el tipo str () incorporado en Python

Cuando se trabaja con tipos incorporados como int y float en Python, es común emplear el manejo de excepciones en los casos en que la entrada no sea confiable: def friendly_int_convert(val): “Convert value to int or return 37 & print an alert if conversion fails” try: return int(val) except ValueError: print(‘Sorry, that value doesn\’t work… […]

intenta bloquear dentro mientras sentencia

Estoy empezando con Python 2.7 y no entiendo por qué sucede algo: En el siguiente código, una versión embellecida de un ejemplo del tutorial de Python 2.7.2, obtengo un resultado inesperado: while True: try: x = int(raw_input(“Please enter a number: “)) break except ValueError: print “Oops! That was not a valid number. Try again…” else: […]

Leyendo datos de un archivo de texto especialmente formateado

Estoy utilizando este método, sugerido amablemente por Ashwini Chaudhary, para asignar datos a un diccionario desde un archivo de texto en un formato específico. keys = map(str.strip, next(f).split(‘Key\t’)[1].split(‘\t’)) words = map(str.strip, next(f).split(‘Word\t’)[1].split(‘\t’)) El archivo de texto tiene el título de la fila seguido de valores, separados por un carácter \t . Ejemplo 1: Key a […]

¿Una forma pythonica de “reanudar el próximo” en excepciones?

El problema: estoy leyendo una serie de archivos de entrada heterogéneos. Escribí una clase de lector para cada uno de ellos, que lee el archivo usando __init__(self, file_name) , y lanza una excepción en caso de una entrada mal formada. El código se ve así: clients = Clients (‘Clients.csv’ ) simulation = Simulation (‘Simulation.csv’ ) […]

¿Cuándo se levanta KeyboardInterrupt en Python?

Todos los documentos nos dicen que es Se genera cuando el usuario pulsa la tecla de interrupción (normalmente Control-C o Delete ). Durante la ejecución, una verificación de interrupciones se realiza regularmente. Pero desde el punto del código, ¿cuándo puedo ver esta excepción? ¿Ocurre durante la ejecución de la statement? Sólo entre las declaraciones? ¿Puede […]

Cómo suprimir la visualización de la excepción principal (la causa) para las excepciones posteriores

Soy consciente de raise … from None y he leído ¿Cómo puedo suprimir más fácilmente las excepciones anteriores cuando hago mi propia excepción en respuesta? . Sin embargo, ¿cómo puedo lograr ese mismo efecto (de suprimir el mensaje “Durante el manejo de la excepción anterior, se produjo otra excepción”) sin tener control sobre el código […]

Python: prueba que se realiza correctamente cuando no se genera una excepción

Sé sobre unittest módulo de Python. Sé sobre el método assertRaises() de la clase TestCase . Me gustaría escribir una prueba que tenga éxito cuando no se produce una excepción. ¿Alguna pista por favor?