1

我想执行以下代码(Jsoup):

    Elements lessondata = td.select(" > table.container > tbody > tr > td > span.nobr");
    for (Element lesson : lessondata) {
    System.out.println("Lesson...");
        }

但前提是可以选择 this > table.container > tbody> tr > td > span.nobr。有时,网站没有这些标签。因此,我想将这段代码放在一个“尝试”中,如果我想要做出的选择是不可能的,则捕获异常。但是现在我需要知道:如果无法选择给定的路径, element.select() 会抛出什么异常?

我会很感激你的帮助。

4

2 回答 2

2

它不会抛出任何异常并返回一个空元素列表。

使用isEmpty()size()检查返回的列表。

Elements lessondata = td.select(
                      " > table.container > tbody > tr > td > span.nobr");
if (!lessondata.isEmpty()) {
  for (Element lesson : lessondata) {
    System.out.println("Lesson...");
  }
}

JavaDoc: http: //jsoup.org/apidocs/org/jsoup/nodes/Element.html#select(java.lang.String)

于 2013-07-02T06:55:43.813 回答
2

您不需要捕获异常。根据文档

@return elements that match the query (empty if none match)

只是检查是否lessondata.isEmpty()

于 2013-07-02T06:48:50.380 回答