Lidando com erros de conexão e JSoup

Estou tentando criar um aplicativo para extrair o conteúdo de várias páginas de um site. Eu estou usando o JSoup para se conectar. Este é o meu código:

<code>for (String locale : langList){
        sitemapPath = sitemapDomain+"/"+locale+"/"+sitemapName;
        try {
            Document doc = Jsoup.connect(sitemapPath)
                    .userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21")
                    .timeout(10000)
                    .get();

            Elements element = doc.select("loc");   
            for (Element urls : element) {
                System.out.println(urls.text());
                }
        } catch (IOException e) {
            System.out.println(e);
        }
    }
</code>

Tudo funciona perfeitamente a maior parte do tempo. No entanto, existem algumas coisas que eu quero ser capaz de fazer.

Primeiro, às vezes, um status 404 retornará ou um status 500 talvez um 301. Com o código abaixo, ele apenas imprime o erro e passa para o próximo URL. O que eu gostaria de poder fazer é tentar retornar o status do URL para todos os links. Se a página se conectar, imprima um 200, se não imprimir o código de status relevante.

Em segundo lugar, às vezes eu pego esse erro "java.net.SocketTimeoutException: leitura esgotada" Eu poderia aumentar meu tempo limite no entanto eu preferiria tentar conectar 3 vezes, ao falhar na terceira vez eu quero adicionar o URL a um array "falhou" para que eu possa tentar novamente as conexões com falha no futuro.

Alguém com mais conhecimento do que eu pode me ajudar?

questionAnswers(2)

yourAnswerToTheQuestion