Est-ce une mauvaise idée d'utiliser le chaînage d'exceptions lors du lancement de RemoteExceptions? Nous avons un serveur RMI qui fait quelque chose comme ceci:Mauvaise idée de chaîner des exceptions avec RMI?
public Object doSomething() throws RemoteException
{
try
{
return getData();
}
catch (CustomException ex)
{
throw new RemoteException(ex);
}
}
Je reçois UnmarshallException causé par un ClassNotFoundException dans mon client. Sur le plan positif, il s'avère que CustomException lui-même est exporté. . Malheureusement, une autre exception au fond de ce type est pas exporté, ce qui est où le ClassNotFoundException vient, je pense que la hiérarchie est quelque chose comme ceci:
RemoteException -> CustomException -> SQLException -> NotExportedException
Le problème que je voyez-vous que même si nous pouvons garantir que CustomException est exporté, nous ne pouvons pas garantir que les exceptions de niveau inférieur sont.
Je penche vers JAMAIS en utilisant le chaînage d'exception avec RemoteExceptions à cause de cela. Au lieu de cela, je pense que je devrais probablement enregistrer la trace de la pile du côté serveur et lancer une exception RemoteException simple, sans exception "cause". Quelqu'un a-t-il déjà fait face à cette situation?
double possible de [Quel est l'avantage des exceptions enchaînées] (http (ou même vos propres « première partie » exceptions personnalisées!): // stackoverflow.com/questions/5020876/what-is-the-advantage-of-chained-exceptions) – Raedwald