Articles of manejo de excepciones

Manejar tipo de excepción específica en python

Tengo un código que maneja una excepción y quiero hacer algo específico solo si es una excepción específica, y solo en el modo de depuración. Así por ejemplo: try: stuff() except Exception as e: if _debug and e is KeyboardInterrupt: sys.exit() logging.exception(“Normal handling”) Como tal, no quiero simplemente añadir un: except KeyboardInterrupt: sys.exit() porque estoy […]

La excepción de Python 3 elimina la variable en el ámbito de cierre por razones desconocidas

Tengo el siguiente código: def foo(): e = None try: raise Exception(‘I wish you would except me for who I am.’) except Exception as e: print(e) print(e) foo() En Python 2.7, esto se ejecuta como se esperaba y se imprime: I wish you would except me for who I am. I wish you would except […]

Cerrar la aplicación de múltiples hilos con KeyboardInterrupt

Tengo una aplicación con dos hilos. Uno es un hilo de pygame que ejecuta un juego simple, el otro es un servidor de escucha que acepta mensajes que se utilizan para controlar el juego. Aquí está el pseudo código reducido: class ServerThread(threading.Thread): def run(self): class SingleTCPHandler(SocketServer.BaseRequestHandler): try: while(1): … #Receive messages from socket. Add them […]

Qué hace error_already_set en Boost.python y cómo manejar las excepciones de manera similar en la API de Python C

He estado trabajando en un proyecto en el que quiero eliminar las dependencias de impulso y reemplazarlo con la API de Python C. Pasé un tiempo entendiendo la API de Python C y vi este catch (error_already_set const &) Leí los documentos de impulso pero explica dónde se usa. Pero quiero saber por qué se […]

No se puede capturar la excepción simulada porque no hereda BaseException

Estoy trabajando en un proyecto que implica conectarse a un servidor remoto, esperar una respuesta y luego realizar acciones basadas en esa respuesta. Capturamos un par de excepciones diferentes y nos comportamos de manera diferente según la excepción que se detecte. Por ejemplo: def myMethod(address, timeout=20): try: response = requests.head(address, timeout=timeout) except requests.exceptions.Timeout: # do […]

pase de javascript

¿Hay algo como “paso” de python en javascript? Quiero hacer el equivalente de javascript de: try: # Something that throws exception catch: pass

Manejar clave dictada no declarada en Python

En mi aplicación Ruby tengo una tabla hash: c = {:sample => 1,:another => 2} Puedo manejar la mesa así: [c[:sample].nil? , c[:another].nil? ,c[:not_in_list].nil?] Estoy tratando de hacer lo mismo en Python. He creado un nuevo diccionario: c = {“sample”:1, “another”:2} No pude manejar la excepción de valor nulo para: c[“not-in-dictionary”] Intenté esto: c[:not_in_dictionery] is […]

Captura de una excepción al usar una statement ‘con’ de Python – Parte 2

esta es una continuación de la pregunta Captura de una excepción al usar una statement ‘con’ de Python . Soy bastante novato y probé el siguiente código con Python 3.2 en GNU / linux. En la pregunta mencionada anteriormente, se propuso algo similar a esto para detectar una excepción de una statement “con”: try: with […]

¿Mala práctica para ejecutar código en el constructor que es probable que falle?

mi pregunta es más bien una pregunta de diseño En Python, si el código en su “constructor” falla, el objeto no se definirá. Así: someInstance = MyClass(“test123”) #lets say that constructor throws an exception someInstance.doSomething() # will fail, name someInstance not defined. Sin embargo, tengo una situación en la que se producirá una gran cantidad […]

“Outsourcing” de manejo de excepciones a un decorador

Muchas cláusulas de prueba / excepción / finalización no solo “uglifican” mi código, sino que a menudo me encuentro con el mismo manejo de excepciones para tareas similares. Así que estaba considerando reducir la redundancia al “subcontratarlos” a un … decorador. Como estaba seguro de no ser el primero en llegar a esta conclusión, busqué […]