2015-12-15 7 views
1

Я пытаюсь разобрать некоторые URL, с Jsoup, но я получаю эту ошибку:Не удается поймать SSLException - Java

javax.net.ssl.SSLException: Received fatal alert: protocol_version 
at sun.security.ssl.Alerts.getSSLException(Alerts.java:208) 
at sun.security.ssl.Alerts.getSSLException(Alerts.java:154) 
at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:2023) 
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1125) 
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) 
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) 
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) 
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559) 
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185) 
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153) 
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:512) 
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:493) 
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:205) 
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:194) 

вот мой код:

public Elements getLinks(String link){ 
    Document doc = null; 
    try { 
     doc = Jsoup.connect(link) 
       .userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0") 
       .referrer("http://www.google.com") 
       .timeout(5000) //it's in milliseconds, so this means 5 seconds.    
       .get(); 
    } 
    catch (SSLException e) { 

     e.printStackTrace(); 
    } 
    catch (IOException e) { 
     if(e.getCause() instanceof SocketTimeoutException) { 
      try { 
       throw new SocketTimeoutException(); 
      } catch (SocketTimeoutException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 
    } 
     e.printStackTrace(); 
    } 

    Elements links = doc.select("a[href]"); 

    return links; 
} 

У меня есть раздел на вылов SSLException, но моя программа останавливается. Я не хочу разбирать конкретный URL-адрес, я просто хочу, чтобы моя программа не разбивалась. Есть идеи, как решить эту проблему?

+2

Ну, у вас есть стек, чтобы ваш улов работал и делал то, что вы хотели его сделать (чтобы распечатать стек). Что касается самого исключения, существует [вопрос] (http://stackoverflow.com/questions/16541627/javax-net-ssl-sslexception-received-fatal-alert-protocol-version), в котором говорится о том, что ошибка говорит о ваших код – Alfabravo

ответ

2

Как исключения неоспоримым выброшены во время инициализации

Document doc; 

эта линия

Elements links = doc.select("a[href]"); 

, вероятно, бросить некоторые другие исключения, которые вы не ловить, или возвращаемое значение не будет правильно инициализировано

 Смежные вопросы

  • Нет связанных вопросов^_^