docs: def errorstr(self, space, use_repr=False):
          "The exception class and value, as a string."
          w_value = self.get_w_value(space)
          if space is None:
              # this part NOT_RPYTHON
              exc_typename = str(self.w_type)
              exc_value = str(w_value)
          else:
              w = space.wrap
              if space.is_w(space.type(self.w_type), space.w_text):
                  exc_typename = space.str_w(self.w_type)
              else:
                  exc_typename = space.str_w(
                      space.getattr(self.w_type, w('__name__')))
              if space.is_w(w_value, space.w_None):
                  exc_value = ""
              else:
                  try:
                      if use_repr:
                          exc_value = space.str_w(space.repr(w_value))
                      else:
                          exc_value = space.str_w(space.str(w_value))
                  except OperationError:
                      # oups, cannot __str__ the exception object
                      exc_value = "<oups, exception object itself cannot be str'd>"
          if not exc_value:
              return exc_typename
          else:
              return '%s: %s' % (exc_typename, exc_value)