Плохая идея связать исключения с RMI?

Это плохая идея использовать цепочку исключений при создании исключений RemoteExceptions? У нас есть RMI-сервер, который делает что-то вроде этого:

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

Я получаю UnmarshallException, вызванную ClassNotFoundException в моем клиенте. С другой стороны, получается, что сама CustomException экспортируется. К сожалению, еще одно исключение глубоко внутри этого парня НЕ экспортируется, и здесь возникает исключение ClassNotFoundException. Я думаю, что иерархия выглядит примерно так:

RemoteException -> CustomException -> SQLException -> NotExportedException

Проблема, которую я вижу, заключается в том, что, хотя мы можем гарантировать, что CustomException экспортируется, мы не можем гарантировать, что существуют исключения более низкого уровня.

Из-за этого я НИКОГДА не использую цепочку исключений с RemoteExceptions. Вместо этого я думаю, что мне, вероятно, следует зарегистрировать трассировку стека на стороне сервера и выдать простое ванильное RemoteException без привязки к «причине». Кто-нибудь имел дело с этой ситуацией раньше?

Ответы на вопрос(2)

Ваш ответ на вопрос