抛出 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,没有“原因”异常链接到它。以前有人处理过这种情况吗?