Как обрабатывать ConnectException: соединение отказано - Java
Я пытаюсь проанализировать некоторые URL-адреса с Jsoup, но я получаю эту ошибку:
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
вот мой код:
public Elements getLinks(String link){
Document doc = null;
Elements links = 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();
links = doc.select("a[href]");
}
catch (ConnectException e){
e.printStackTrace();
}
catch (UnsupportedMimeTypeException e){
e.printStackTrace();
}
catch (SocketTimeoutException e){
e.printStackTrace();
}
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();
}
return links;
}
У меня есть раздел catch для ConnectException, но моя программа останавливается. Есть идеи, как решить эту проблему?
1 ответ
Ответ, предложенный Kayaman:
Ну, этот метод не остановит вашу программу. Он просто напечатает трассировку стека и вернет ноль. Если остальная часть вашей программы не может справиться с этим, то проблема есть.