Это не бросает UnknownHostException
.Это просто появляется в сообщении об исключении, которое вы фактически поймали.Вероятно, это основная причина исключения, которое вы поймали.
Чтобы определить фактическое исключение, вы должны напечатать немного больше деталей.Например,
} catch (Exception e) {
logger.error("Caught Exception in login(): " + e.getClass().getName() + ": " + e.getMessage());
}
или просто использование Throwable#toString()
, которое уже включает в себя как тип исключения, так и сообщение:
} catch (Exception e) {
logger.error("Caught Exception in login(): " + e);
}
или просто передайте исключение в качестве второго аргумента регистратора, если он правильно настроен, его стековая трассировка будет напечатана:
} catch (Exception e) {
logger.error("Caught Exception in login(): " + e.getMessage(), e);
}
Обновите в соответствии с вашими комментариями: вам лучше всего обновить улов следующим образом:
} catch (ClientTransportException e) {
if (e.getCause() instanceof UnknownHostException) {
// UHE.
} else {
// Other.
}
}
Вы не должны делать различий в зависимости от сообщения.Это рецепт проблем с мобильностью.Это сообщение является конфиденциальной темой для изменений, которые могут даже зависеть от локали!