code: def error_message(e, message=None, cause=None):
      
      if message is None and cause is None:
          return None
      elif message is None:
          return '%s, caused by %r' % (e.__class__, cause)
      elif cause is None:
          return message
      else:
          return '%s, caused by %r' % (message, cause)
docs: Formats exception message + cause
      :param e:
      :param message:
      :param cause:
      :return: formatted message, includes cause if any is set