try:
something here
except:
print 'the whatever error occurred.'
¿Cómo puedo imprimir el error en mi bloque except:
?¿Cómo imprimir un error en Python?
try:
something here
except:
print 'the whatever error occurred.'
¿Cómo puedo imprimir el error en mi bloque except:
?¿Cómo imprimir un error en Python?
Para Python 2.6 y versiones posteriores:
except Exception as e: print(e)
Para Python 2.5 y anteriores, el uso :
except Exception,e: print str(e)
parezca lo más cercano a lo que el OP quería. – physicsmichael
la parte 'str()' es redundante - 'print e' es exactamente lo mismo que' print str (e) '[[es decir,' print' hace su propia cadena]]. –
@alex: ¿no depende de la subclase (si existe) de la excepción lanzada? El método __repr__ podría no haberse implementado mientras que __str__ podría tenerlo. En cualquier caso, no hay un buen sustituto para una implementación incompleta, supongo ;-) – jldupont
En caso de que quiera pasar cadenas de error, aquí es un ejemplo de Errors and Exceptions (Python 2,6)
>>> try:
... raise Exception('spam', 'eggs')
... except Exception as inst:
... print type(inst) # the exception instance
... print inst.args # arguments stored in .args
... print inst # __str__ allows args to printed directly
... x, y = inst # __getitem__ allows args to be unpacked directly
... print 'x =', x
... print 'y =', y
...
<type 'exceptions.Exception'>
('spam', 'eggs')
('spam', 'eggs')
x = spam
y = eggs
Muy completo, aunque 'como' no funciona antes de que python 2.6 – foosion
traceback
módulo proporciona métodos para formatear e imprimir excepciones y sus tracebacks, p. esta excepción se imprimiría como el controlador predeterminado hace:
except: traceback.print_exc()
Esta debería ser la respuesta correcta –
Estoy de acuerdo con @KarthikT en que esta debería ser la respuesta correcta. –
Un forro se puede hacer con las declaraciones de aserción si eso es lo que quiere hacer. Esto lo ayudará a escribir código estáticamente reparable y a verificar los errores con anticipación.
assert type(A) is type(""), "requires a string"
En Python 2.6 o mayor que es un poco más limpia:
except Exception as e: print(e)
En versiones anteriores es todavía bastante legible:
except Exception, e: print e
En python3, debe usar la primera vía, con "como". –
sugiero cambiar el título: no está imprimiendo el __error__, está imprimiendo la __exception__. Ellos son diferentes. – FaithReaper