try print pass exceptions error custom catch all python error-handling exception-handling

print - ¿Cómo imprimir un error en Python?



raise valueerror (6)

(Iba a dejar esto como un comentario en la respuesta de @jldupont, pero no tengo suficiente reputación).

He visto respuestas como la respuesta de @jldupont en otros lugares también. FWIW, creo que es importante tener en cuenta que esto:

except Exception as e: print(e)

imprimirá la salida de error a sys.stdout por defecto. Un enfoque más apropiado para el manejo de errores en general sería:

except Exception as e: print(e, file=sys.stderr)

(Tenga en cuenta que tiene que import sys para que esto funcione). De esta manera, el error se imprime en STDERR lugar de en STDOUT , lo que permite el análisis / redirección de la salida / etc. Entiendo que la pregunta fue estrictamente sobre "imprimir un error", pero parece importante señalar la mejor práctica aquí, en lugar de dejar de lado este detalle que podría llevar a un código no estándar para cualquier persona que finalmente no aprenda mejor.

No he usado el módulo de traceback como en la respuesta de Cat Plus Plus, y tal vez sea la mejor manera, pero pensé que lo iba a lanzar.

try: something here except: print ''the whatever error occurred.''

¿Cómo puedo imprimir el error en mi bloque except: :?


El módulo de traceback proporciona métodos para formatear e imprimir excepciones y sus rastreos, por ejemplo, esto imprimirá una excepción como lo hace el controlador predeterminado:

import traceback try: 1/0 except Exception: traceback.print_exc()

Salida:

Traceback (most recent call last): File "C:/scripts/divide_by_zero.py", line 4, in <module> 1/0 ZeroDivisionError: division by zero


En Python 2.6 o superior es un poco más limpio:

except Exception as e: print(e)

En versiones anteriores todavía es bastante legible:

except Exception, e: print e


En caso de que quiera pasar cadenas de error, aquí hay un ejemplo de Errores y excepciones (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


Para Python 2.6 y versiones posteriores y Python 3.x:

except Exception as e: print(e)

Para Python 2.5 y versiones anteriores, use:

except Exception,e: print str(e)


Se puede hacer un aumento de errores de línea con afirmaciones afirmativas si eso es lo que quiere hacer. Esto le ayudará a escribir código estáticamente corregible y verificar errores antes.

assert type(A) is type(""), "requires a string"