Java JSoup Exception忽略了try catch?

问题描述 投票:2回答:1

我有一个使用JSoup连接和解析网站数据的程序。当我在给出它的10秒超时之后网站无法连接时,JSoup方法抛出一个UncheckedIOException。这可能包含IOException,例如“SSL Peer意外关闭”或“超时”,这些是我过去处理过的IOExceptions。这很奇怪,因为它包含在try catch中:

        Document document;
        try {
            document = Jsoup.connect("https://www.website.com").timeout(10000).maxBodySize(0).get();
        } catch (Exception e) {
            return false;
        }
        Elements elements = document.select("tr");
        for (Element e : elements) {
            System.out.println(e.text());
        }
        return true;

我已经做了各种各样的解决方法,比如在try catch中包装方法,使方法抛出异常并将其处理得更高,而上面我已经隔离了导致问题的行,并且仅在try catch中包装。我已经尝试捕获异常,IOException,UncheckedIOException等,但最终仍然导致整个应用程序崩溃,因为错误渗透了某种方式。

我从未遇到过这样的事情。如何尝试捕获无法处理错误?这是JSoup设置错误系统的方式吗?这不可能是对的,可以吗?如果有帮助,我正在使用JSoup 1.11.2,从https://jsoup.org/download下载。

java exception try-catch jsoup
1个回答
3
投票

问题是错误没有被捕获,因为我试图捕获异常。 JSoup抛出一个扩展Error而不是Exception的Object,所以当我这么做的时候

try {

} catch (Exception e) {}

我应该做的

try {

} catch (Error e) {}
© www.soinside.com 2019 - 2024. All rights reserved.