Captura de uma exceção aninhada em outra exceção

Eu quero capturar uma exceção, que está aninhada em outra exceção. Atualmente, estou fazendo isso desta maneira:

} catch (RemoteAccessException e) {
    if (e != null && e.getCause() != null && e.getCause().getCause() != null) {
        MyException etrp = (MyException) e.getCause().getCause();
        ...
    } else {
        throw new IllegalStateException("Error at calling service 'service'");
    }
}

Existe uma maneira de fazer isso mais eficiente e elegante?

questionAnswers(7)

yourAnswerToTheQuestion