code: def asRemoteException(ErrorType):
      '''return the remote exception version of the error above
  you can catch errors as usally:
  >>> try:
  raise asRemoteException(ValueError)
  except ValueError:
  pass
  or you can catch the remote Exception
  >>> try:
  raise asRemoteException(ReferenceError)(ReferenceError(),'')
  except asRemoteException(ReferenceError):
  pass
  '''
      RemoteException = _remoteExceptionCache.get(ErrorType)
      if RemoteException is None:
          RemoteException = _newRemoteException(ErrorType)
          _remoteExceptionCache.setdefault(ErrorType, RemoteException)
          _remoteExceptionCache.setdefault(RemoteException, RemoteException)
          return _remoteExceptionCache.get(ErrorType)
      return RemoteExceptiof asRemoteException(ErrorType):
      '''return the remote exception version of the error above
  you can catch errors as usally:
  >>> try:
  raise asRemoteException(ValueError)
  except ValueError:
  pass
  or you can catch the remote Exception
  >>> try:
  raise asRemoteException(ReferenceError)(ReferenceError(),'')
  except asRemoteException(ReferenceError):
  pass
  '''
      RemoteException = _remoteExceptionCache.get(ErrorType)
      if RemoteException is None:
          RemoteException = _newRemoteException(ErrorType)
          _remoteExceptionCache.setdefault(ErrorType, RemoteException)
          _remoteExceptionCache.setdefault(RemoteException, RemoteException)
          return _remoteExceptionCache.get(ErrorType)
      return RemoteException
docs: return the remote exception version of the error above
  you can catch errors as usally:
  >>> try:
  raise asRemoteException(ValueError)
  except ValueError:
  pass
  or you can catch the remote Exception
  >>> try:
  raise asRemoteException(ReferenceError)(ReferenceError(),'')
  except asRemoteException(ReferenceError):
  pass