Как получить подробности об исключениях в Python3

Я хочу получить подробную информацию об исключении в Python3

например ... в 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)

и стандартный вывод ...

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__

Я хочу больше информации об этом встроенном в Exception классе от экземпляра "эээ»,

такие как

ФАЙЛ: foo.pyЛИНИЯ: 4СООБЩЕНИЕ: 'ДИКТ» объект не имеет атрибуташифровать»

так же, как стандартный вывод этого кода

{}.encode('utf8')

этот

Traceback (most recent call last):

  File "foo.py", line 2, in 

    {}.encode('utf8')

AttributeError: 'dict' object has no attribute 'encode'

Ответы на вопрос(1)

Ваш ответ на вопрос