Как вручную вызвать исключение «Не удается разрешить хост» на устройстве Android - PullRequest
1 голос
/ 14 апреля 2020

Я вижу всплеск этих типов ошибок в моем производственном приложении через журналы:

"Unable to resolve host "{my.api.website}": No address associated with hostname"

Сайт / API работает для 99,9% людей, и я вижу только это с перерывами.

Похоже, что это проблема с подключением inte rnet по следующим ссылкам:

Поэтому я настроил некоторые логи повторных попыток c, чтобы они предприняли другую попытку, но проблема в том, что я не уверен, как на самом деле преднамеренно вызвать это исключение, используя * Устройство 1030 * (либо эмулятор, либо в режиме реального времени), чтобы проверить, работает ли новое исправление.

Как бы я go сообщил о ручном запуске java.lang.exception, когда сайт, на который я нажимаю, выдает эту проблему unable to resolve host?

1 Ответ

1 голос
/ 15 апреля 2020

Вы можете вызвать UnknownHostException, введя имя хоста неправильно. Причина ошибки не будет той же самой, но по крайней мере вы получите тот же класс исключений.

Там, в «дикой природе», это исключение может произойти по ряду причин, включая:

  • устройство теряет подключение к сети во время или незадолго до разрешения имени хоста
  • устройство подключается к неавторизованному порталу, который перехватывает запросы DNS или не подключается к Inte rnet
  • Сбой DNS-запроса или тайм-аут по любой другой случайной причине

Таймаут DNS-запроса является особенно коварной проблемой. Их сложно воспроизвести. Время ожидания по умолчанию слишком велико, дольше, чем пользователи готовы ждать, и изменить его невозможно. Разработчикам приходится прибегать к таким хакам: Могу ли я установить таймаут getaddrinfo в Android для DefaultHttpClient?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...