Articles of manejo de excepciones

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é […]

¿Cómo evitar intentar atrapar todas las líneas posibles en python?

Tengo muchas líneas seguidas que pueden lanzar una excepción, pero no importa qué, todavía debe continuar la siguiente línea. ¿Cómo hacer esto sin intentar individualmente capturar cada una de las afirmaciones que pueden generar una excepción? try: this_may_cause_an_exception() but_I_still_wanna_run_this() and_this() and_also_this() except Exception, e: logging.exception(‘An error maybe occured in one of first occuring functions causing […]

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 […]