Ответ 1
Ваша догадка кажется правильной, используя синхронные вызовы. Retrofit сделан для того, чтобы выбросить RetrofitError, представляющий ошибку: Ссылка. Обратите внимание, что throw IllegalStateException
в handleError
не должно происходить в случае синхронного вызова.
Изменить: Похоже, что Retrofit медленно переходит к версии 2.0, если вы планируете использовать Retrofit 2.0, я рекомендую прочитать документацию, чтобы увидеть, как это делается в новой версии.
Изменить pt2: Retrofit переместился в версию 2.0, и теперь, если вы хотите обрабатывать ошибки, вам больше не придется ловить RetrofitErrors, но IOException. Вы можете непосредственно взглянуть на реализацию execute()
/**
* Synchronously send the request and return its response.
*
* @throws IOException if a problem occurred talking to the server.
* @throws RuntimeException (and subclasses) if an unexpected error occurs creating the request
* or decoding the response.
*/
Response<T> execute() throws IOException;
Другие ссылки: 1