Метод exists
работает так, что он делает HEAD
запрос к ресурсу.
Если запрос выполнен успешно, он возвращает true.
Если по какой-либо причине запрос не выполняется, проверяется тип исключения. Только в случае исключения Not Found
(код состояния HTTP 404) возвращается false.
Любые другие ошибки возвращаются вызывающей стороне. Так что в вашем случае, если истекло время ожидания, вы должны ожидать исключение времени ожидания и должны быть готовы обработать это исключение.