Articles of excepción de

Genere un error en Python, excluya el último nivel en el seguimiento de la stack

Entonces, estoy desarrollando esta clase que tiene un indexador. Me gustaría lanzar (o “subir”, en la jerga de Python) una excepción IndexError. Bueno, eso es bastante trivial, if errorCondition: raise IndexError(“index out of range”) Sin embargo, cuando este código se ejecuta en la consola y ocurre un error, el seguimiento de la stack también incluye […]

¿Existe una forma multiplataforma de obtener información de OSError de Python?

En una simple operación de creación de directorios, por ejemplo, puedo hacer un OSError como este: (Ubuntu Linux) >>> import os >>> os.mkdir(‘foo’) >>> os.mkdir(‘foo’) Traceback (most recent call last): File “”, line 1, in OSError: [Errno 17] File exists: ‘foo’ Ahora puedo atrapar ese error así: >>> import os >>> os.mkdir(‘foo’) >>> try: … […]

Haciendo de ‘assert` de Python lanzar una excepción que yo elija

¿Puedo hacer que assert lance una excepción que elijo en lugar de AssertionError ? ACTUALIZAR: Explicaré mi motivación: Hasta ahora, he tenido pruebas de estilo de afirmación que plantearon mis propias excepciones; Por ejemplo, cuando creaste un objeto Node con ciertos argumentos, verificaría si los argumentos eran buenos para crear un nodo, y si no, […]

¿Cómo se muestra un mensaje de error cuando una prueba no arroja una excepción esperada?

Soy nuevo en Python. Quería probar si mi código produce una excepción. Obtuve el código de aquí: ¿Cómo se prueba que una función de Python produce una excepción? import mymod import unittest class MyTestCase(unittest.TestCase): def test1(self): self.assertRaises(SomeCoolException, mymod.myfunc, compulsory_argument) Ahora, también quiero mostrar un mensaje si no se lanza la excepción. Cómo puedo hacer eso […]

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

AttributeError: el objeto ‘propiedad’ no tiene atributo

Python (2.6) parece estar disminuyendo sin ninguna razón, ¿alguien puede ver un problema con este código? class DB (): def doSomething (self, str): print str class A (): __db = DB() @staticmethod def getDB (): return A.__db db = property(getDB) A.db.doSomething(“blah”) Falla con la excepción: AttributeError: el objeto ‘propiedad’ no tiene atributo ‘doSomething’ Tenía entendido […]

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

¿Cuál es el punto de reenviar excepciones?

Así que he visto una mención en otra parte del uso de lo siguiente para volver a generar una excepción. try: whatever() except: raise ¿Cuál es el propósito de reenviar una excepción? ¿Seguramente una excepción no capturada solo subirá a la cima de todos modos? es decir: try: int(“bad”) except: raise tiene salida idéntica a: […]

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

¿Por qué los flotadores NumPy no dan ZeroDivisionError?

Me di cuenta de que en el código: import numpy as np a = 0.0 print a / a b = np.array( [0.0] ) print b[0] / b[0] la primera función de impresión lanza un ZeroDivisionError, pero la segunda genera nan . Soy consciente de que type(b[0]) es numpy.float64 , mientras que type(a) es float […]