Это сложный вопрос.Большинство из них вообще не указывают на потерянные соединения, на самом деле это делает только UnmarshalException, и только иногда, например, когда оно оборачивает исключение ClassNotFoundException, это не указывает на потерянное соединение.
В некотором смысле ConnectIOException такжеуказывает на это, но это происходит только при попытке восстановить соединение с пулом клиента в начале вызова.
Более интересным и еще более сложным вопросом является то, какие исключения сохраняют идемпотентность, если вы повторите попытку после них, и этоочень сложный вопрос для ответа.Я посвятил этому около 20 страниц своей книги по RMI и сомневаюсь, что рассмотрел все возможные варианты.
NoSuchObjectException указывает на то, что удаленного объекта, который экспортировал заглушку, к которой вы обращаетесь, больше нет, т.е. он не был экспортирован изего JVM.
Само по себе RemoteException может означать практически что угодно, особенно если вы допустили ошибку, из-за которой ваши собственные исключения из приложения расширяли его.Не делай этого.И на практике вам не нужно просто перехватывать RemoteException, вы должны перехватывать все возможные исключения RMI по отдельности с помощью перехватчика RemoteException для всех ловушек внизу, поскольку существуют разные стратегии восстановления для разных исключений.Если вы просто не хотите отказываться от какой-либо удаленной ошибки вообще.