If this is true, then client must therefore catch both DatabaseExceptions and RemoteExceptions.
Actual in my DataAccessFacade, which the client uses. I catch the DatabaseException, then I also catch Exception, in the catch of the Exception, I create a new DatabaseException, put a nice message in it and then throw the DatabaseException. This way the client only has to catch the DatabaseException.
Also why not just have your DataAccess interface throw Exception? It is generic and allows you to throw the more appropriate exceptions in the implementation class.
Mark