Неплохая идея использовать цепочку исключений при бросании RemoteExceptions? У нас есть сервер RMI, что делает что-то вроде этого:Плохая идея перехватывать исключения с RMI?
public Object doSomething() throws RemoteException
{
try
{
return getData();
}
catch (CustomException ex)
{
throw new RemoteException(ex);
}
}
я получаю UnmarshallException вызванный ClassNotFoundException в моем клиенте. С положительной стороны выясняется, что сам CustomException экспортируется. . К сожалению, другое исключение глубоко внутри этого парня не экспортируется, который где ClassNotFoundException приходит, я думаю, что иерархия что-то вроде этого:
RemoteException -> CustomException -> SQLException -> NotExportedException
Проблема I см. то, что, хотя мы можем гарантировать, что CustomException будет экспортироваться, мы не можем гарантировать, что будут исключения на более низком уровне.
Я склоняюсь к НИКОГДА, используя исключение цепочки с RemoteExceptions из-за этого. Вместо этого, я думаю, я должен, вероятно, зарегистрировать трассировку стека на стороне сервера и выбросить простое, vanilla RemoteException без исключения «причины», прикованное к нему. Кто-нибудь раньше занимался этой ситуацией?
Возможно дубликат [Что такое преимущество прикованных исключений] (HTTP (или даже ваши собственные «первые партии» пользовательских исключений!): // stackoverflow.com/questions/5020876/what-is-the-advantage-of-chained-exceptions) – Raedwald 2016-01-20 18:29:51