Articles of excepción

¿Cómo puedo probar un método abstracto en Python 2.6

Tengo una clase abstracta: import abc class Hello(object): __metaclass__ = abc.ABCMeta @abc.abstractmethod def add(self, foo): pass @abc.abstractmethod def remove(self, foo): pass Estoy usando abc para hacer métodos abstractos, entonces, cuando lo hago: hello = Hello() y se TypeError: Can’t instantiate abstract class Hello with abstract methods add, remove este error: TypeError: Can’t instantiate abstract class […]

Objeto que genera una excepción cuando se usa de cualquier manera.

Necesito crear un objeto que genere una excepción personalizada, UnusableObjectError , cuando se use de alguna manera (aunque crearlo no debería crear una excepción). a = UnusableClass() # No error b = UnusableClass() # No error a == 4 # Raises UnusableObjectError ‘x’ in a # Raises UnusableObjectError for i in a: # Raises UnusableObjectError […]

Excepción definida por el usuario:

Intenté definir mi propia clase de excepción en Python 2.7, derivando de BaseException . class NestedCommentException(BaseException): “”” Exception for nested comments “”” def __init__(self, file_path, list_lines): self.file_path = file_path self.list_lines = list_lines def __repr__(self): return self.__str__() def __str__(self): return ‘File {0} contains nested comments at lines {1}’.format(self.file_path, ‘, ‘.join(self.list_lines)) Pero al lanzarlo, no se puede […]

Prácticas recomendadas para estructurar excepciones de módulos en Python3

Supongamos que tengo un proyecto con una estructura de carpetas como tal. /project __init__.py main.py /__helpers __init__.py helpers.py … El módulo helpers.py define alguna excepción y contiene algún método que genera esa excepción. # /project/__helpers/helpers.py class HelperException(Exception): pass def some_function_that_raises(): raise HelperException Por otro lado, mi módulo main.py define sus propias excepciones e importa métodos […]

¿Es posible boost el tiempo de espera de respuesta en Google App Engine?

En mi máquina local, el script se ejecuta bien pero en la nube es 500 todo el tiempo. Esta es una tarea cron, así que realmente no me importa si toma 5min … : ¿Alguna idea de si es posible boost el tiempo de espera? Gracias rui

Python: elevar SyntaxError con lineno

Estoy implementando un analizador para un lenguaje específico del dominio, y quiero poder generar un SyntaxError. ¿Cómo configuro el nombre de archivo, lineno y desplazamiento cuando subo esta excepción? excepción SyntaxError Se genera cuando el analizador encuentra un error de syntax. Esto puede ocurrir en una statement de importación, en una statement exec, en una […]

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

¿Por qué el manejo de múltiples excepciones requiere una tupla y no una lista?

Considere el siguiente ejemplo: def main_list(error_type): try: if error_type == ‘runtime’: raise RuntimeError(“list error”) if error_type == ‘valueerror’: raise ValueError(“list error”) except [RuntimeError, ValueError] as e: print str(e) def main_tuple(error_type): try: if error_type == ‘runtime’: raise RuntimeError(“tuple error”) if error_type == ‘valueerror’: raise ValueError(“tuple error”) except (RuntimeError, ValueError) as e: print str(e) main_tuple(‘runtime’) main_tuple(‘valueerror’) main_list(‘runtime’) […]

Excepciones de MySQLdb en Python

Empezando a familiarizarse con python y MySQLdb y me preguntaba ¿Dónde está el mejor juego para poner un bloque try / catch para la conexión a MySQL? En el punto MySQLdb.connect? También debería haber uno cuando alguna vez me consulta? ¿Qué excepciones debería estar atrapando en cualquiera de estos bloques? Gracias por cualquier ayuda Saludos […]

Mensaje de error de Python ValueError

¿Cómo puedo imprimir el mensaje de ValueError después de haberlo detectado?