I would do the detection based on exception handling instead of instrospection:

    try:
      self.thrown = item.exc_type(*item.exc_value)
    except TypeError:
      self.thrown = item.exc_type(item.exc_value)

Also, could you add a brief comment about why we need the special handling?