Má idéia para encadear exceções com o RMI?

É uma má idéia usar o encadeamento de exceção ao lançar RemoteExceptions? Temos um servidor RMI que faz algo assim:

public Object doSomething() throws RemoteException
{
    try
    {
        return getData();
    }
    catch (CustomException ex)
    {
        throw new RemoteException(ex);
    }
}

Estou recebendo UnmarshallException causado por uma ClassNotFoundException no meu cliente. No lado positivo, acontece que a própria CustomException É exportada. Infelizmente, outra exceção no fundo desse cara NÃO é exportada, e é aí que a ClassNotFoundException entra. Acho que a hierarquia é algo como isto:

RemoteException -> CustomException -> SQLException -> NotExportedException

O problema que vejo é que, embora possamos garantir a exportação da CustomException, não podemos garantir que existam exceções de nível inferior.

Estou inclinado a nunca usar encadeamento de exceção com RemoteExceptions por causa disso. Em vez disso, acho que provavelmente devo registrar o rastreamento de pilha no lado do servidor e lançar uma RemoteException simples e simples, sem exceção de "causa" vinculada a ele. Alguém já lidou com essa situação antes?

questionAnswers(2)

yourAnswerToTheQuestion