相关疑难解决方法(0)

用RMI链接异常的坏主意?

抛出RemoteExceptions时使用异常链接是一个坏主意吗?我们有一个RMI服务器,它执行以下操作:

public Object doSomething() throws RemoteException
{
    try
    {
        return getData();
    }
    catch (CustomException ex)
    {
        throw new RemoteException(ex);
    }
}
Run Code Online (Sandbox Code Playgroud)

我在客户端中遇到由ClassNotFoundException引起的UnmarshallException.从好的方面来看,事实证明CustomException本身是导出的.不幸的是,这个人内部的另一个异常是没有导出,这是ClassNotFoundException的来源.我认为层次结构是这样的:

RemoteException - > CustomException - > SQLException - > NotExportedException

我看到的问题是,即使我们可以保证导出CustomException,我们也无法保证任何较低级别的异常.

因为这个原因,我倾向于永远不要使用RemoteExceptions进行异常链接.相反,我认为我应该在服务器端记录堆栈跟踪并抛出一个简单的vanilla RemoteException,并没有链接到它的"cause"异常.以前有人处理过这种情况吗?

java exception-handling rmi

2
推荐指数
1
解决办法
1935
查看次数

标签 统计

exception-handling ×1

java ×1

rmi ×1