Java 如何在异常之后保持代码运行

Java 如何在异常之后保持代码运行,java,exception-handling,jsoup,Java,Exception Handling,Jsoup,我正在使用Jsoup连接到一个网站以获取HTML数据。 我有一个大约1000个URL的列表,我需要从中提取数据,我正在迭代这些URL。对于少数情况,我得到一个例外: Exception in thread "main" java.net.SocketTimeoutException: connect timed out at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) at java.net.DualStackP

我正在使用Jsoup连接到一个网站以获取HTML数据。 我有一个大约1000个URL的列表,我需要从中提取数据,我正在迭代这些URL。对于少数情况,我得到一个例外:

Exception in thread "main" java.net.SocketTimeoutException: connect timed out
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
这将停止对其余URL的处理。我曾尝试将timeout()更改为timeout(0),但这样可以让代码无休止地为该URL运行


是否有一种方法可以跳过出现异常的URL,以便代码为其余的URL运行。

您可以将调用封装在
try{…}catch(E){…}
子句中

try {
    // Connect to the website
} catch (SocketTimeoutException ste) {
    ste.printStackTrace();
}

您需要try-catch块中的代码,捕获此异常后,您可以通过将其写入记录器来处理。处理异常将使程序继续。

您应该在循环中使用
try
-
catch

public static void main(String[] args){
    for (int i=0; i<10; i++) {
        try {
            //your code goes here
        } catch (ExceptionType name) {
            //error-handling code
        }
    }
}
publicstaticvoidmain(字符串[]args){

对于(It i=0;你没有发现异常吗?我从来没有使用过JTAY,介意。让异常停止代码,使LISTI中的其他URL错误地在我的测试块中插入循环。愚蠢的错误。你学到了一些东西。也许考虑一下投票和/或接受任何帮助你的答案。哦,我错误地把循环放进了尝试小组。k、 愚蠢的错误。