Quiero obtener detalles de Exception en Python3
por ejemplo … en foo.py
import sys try: {}.encode('utf8') except: err = sys.exc_info()[0] print("itself\t", err) print(".args\t", err.args) print("dir\t", dir(err.args)) print("type\t", type(err.args)) print("vars\t", vars(err)) print("--------k,v in vars---------") for k,v in vars(err).items(): print(k) print(v)
y stdout es …
itself .args dir ['__class__', '__delattr__', '__delete__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__get__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__name__', '__ne__', '__new__', '__objclass__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__set__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__'] type vars {'__init__': , '__doc__': 'Attribute not found.', '__new__': } --------k,v in vars--------- __init__ __doc__ Attribute not found. __new__
Quiero más información de esto construido en la clase Exception de la instancia “err”,
como
al igual que stdout de este código
{}.encode('utf8')
esta
Traceback (most recent call last): File "foo.py", line 2, in {}.encode('utf8') AttributeError: 'dict' object has no attribute 'encode'
Utilice el módulo de traceback
para imprimir los tracebacks desde su posición actual o para una excepción determinada.
No indica qué salida está esperando, pero lo más probable es que el módulo de traceback
sea capaz de producir la salida que mejor se adapte a sus necesidades, sean las que sean.