Articles of manejo de excepciones de

Manejar excepción arbitraria, imprimir mensaje de excepción predeterminado

Tengo un progtwig, una parte del cual ejecuta un bucle. Durante la ejecución de este bucle, hay excepciones. Obviamente, me gustaría que mi progtwig se ejecute sin errores, pero por el bien del progreso, me gustaría que el progtwig se ejecute en toda la entrada y no se detenga cuando se produce una excepción. La […]

Python: Queue.Empty Manejo de excepciones

Después de un breve debate con alguien sobre el manejo de excepciones en Python, provocado por el manejo de un objeto de cola, pensé que lo tiraría por ahí … MÉTODO 1: import Queue q = Queue.Queue() try: task=q.get(False) #Opt 1: Handle task here and call q.task_done() except Queue.Empty: #Handle empty queue here pass #Opt2: […]

¿Qué pasa con mi excepto?

Tengo un SyntaxError en mi excepto: try: opts, args = getopt.getopt(sys.argv[1:], ‘P:D:H:d:u:p:nvhmJi:c:Ml:TB:’, [‘host=’, ‘port=’, ‘directory=’, ‘user=’, ‘password=’, ‘daemon=’, ‘noauth’, ‘help’, ‘verbose’, ‘mysql’, ‘icounter=’, ‘config=’, ‘nolock’, ‘nomime’, ‘loglevel’, ‘noiter’, ‘baseurl=’]) except getopt.GetoptError, e: print usage print ‘>>>> ERROR: %s’ % str(e) sys.exit(2) Me sale el error: File “main.py”, line 199 except getopt.GetoptError, e: SyntaxError: invalid syntax […]

Python – ¿Enviar correo electrónico cuando se produce una excepción?

Tengo una clase de python con muchos métodos (): Method1() Method2() ……….. ……….. MethodN() Todos los métodos, mientras se realizan diferentes tareas, tienen el mismo esquema: do something do something else has anything gone wrong? raise an exception Quiero poder recibir un correo electrónico cada vez que se produzca una excepción en cualquier parte de […]

Cómo lidiar con “MemoryError” en el código Python

Tengo un trozo de código python que genera un MemoryError después de un tiempo. Sé que consume mucha memoria. Entonces, decidí poner el código dentro de un bloque try/except para que el esqueleto tenga el siguiente aspecto: while True: while True: try: #—- do some stuff except MemoryError as err: print(err) break Por lo tanto, […]

¿Cómo guardar los valores de traceback / sys.exc_info () en una variable?

Quiero guardar el nombre del error y los detalles de rastreo en una variable. Aquí está mi bash. import sys try: try: print x except Exception, ex: raise NameError except Exception, er: print “0”, sys.exc_info()[0] print “1”, sys.exc_info()[1] print “2”, sys.exc_info()[2] Salida: 0 1 2 Salida deseada: 0 NameError 1 2 Traceback (most recent call […]

¿Aumentar excepción vs. retorno Ninguno en funciones?

¿Cuál es la mejor práctica en una función definida por el usuario en Python: raise una excepción o return None ? Por ejemplo, tengo una función que encuentra el archivo más reciente en una carpeta. def latestpdf(folder): # list the files and sort them try: latest = files[-1] except IndexError: # Folder is empty. return […]

Python cómo manejar con seguridad una excepción dentro de un administrador de contexto

Creo que he leído que las excepciones dentro de with no permiten que __exit__ se llame correctamente. Si me equivoco en esta nota, perdona mi ignorancia. Así que tengo un pseudo código aquí, mi objective es usar un contexto de locking que en __enter__ registra una fecha de inicio y devuelve una identificación de locking, […]

Python try / except: intentando múltiples opciones

Estoy tratando de raspar algo de información de páginas web que son inconsistentes sobre dónde se encuentra la información. Tengo un código para manejar cada una de varias posibilidades; Lo que quiero es probarlos en secuencia, entonces si ninguno de ellos funciona, me gustaría fallar con gracia y seguir adelante. Es decir, en código psuedo: […]

¿Una excepción con solo un aumento tiene algún uso?

Por ejemplo, aquí hay un código de django.templates.loader.app_directories.py. [1] try: yield safe_join(template_dir, template_name) except UnicodeDecodeError: # The template dir name was a bytestring that wasn’t valid UTF-8. raise Si detecta una excepción solo para volver a elevarla, ¿para qué sirve? [1] http://code.djangoproject.com/browser/django/trunk/django/template/loaders/app_directories.py