空指针异常检查
问题描述:
我有一个类文件,当我编译显示空指针异常在一个特定的行中。我处理如下的空检查。空指针异常检查
108 doc = Jsoup.parse(html, brandUrl);
109 Element div = doc.getElementById("eventTTL");
110 String attr = div.attr("eventTTL");
111 Date closingDate = new Date(Long.parseLong(attr));
112 Elements mainForm = doc.select("div#main-form");
113 Elements mainDivs = mainForm.select("DIV");
在com.textT.at.Chickyur.main(Chickyur.java:110)显示java.lang.NullPointerException
if(div != null)
String attr = div.attr("eventTTL");
Also tried
if(div.attr("eventTTL") != null)
String attr = div.attr("eventTTL");
我仍然不断收到异常。哪里不对?有什么想法吗?
答
我无法以上述代码究竟是如何结构化发布的代码告诉我们,但这样就可以解决NullPointerException
:
Element div = doc.getElementById("eventTTL");
String attr = "";
if(div != null)
attr = div.attr("eventTTL");
如果继续后得到的异常,我猜问题是别处在代码中,你需要更新你的例子。
答
没有看到你的堆栈跟踪,我只是猜测,但:
从你说的路线是错误,这意味着div
为空,这表明前行是罪魁祸首,这这意味着你的doc
没有元素的ID为eventTTL
。
请确保您的doc
有效,并且它实际上有一个eventTTL
。
答
您所做的代码更改将导致编译错误。没有类文件将被创建,因此您可能正在运行旧的破碎类文件。
你可能想要做这个(扩展if的范围)。
doc = Jsoup.parse(html, brandUrl);
Element div = doc.getElementById("eventTTL");
if(div != null) {
String attr = div.attr("eventTTL");
Date closingDate = new Date(Long.parseLong(attr));
Elements mainForm = doc.select("div#main-form");
Elements mainDivs = mainForm.select("DIV");
...
}
你在哪里得到NullPointerException?邮政堆栈跟踪和相关的代码。 – m0skit0 2012-02-13 19:39:53