2012-02-13 19 views
0

コンパイル時に、特定の行のNULLポインタ例外が常に表示されるクラスファイルがあります。私は以下のようにヌルチェックを処理しました。ヌルポインタ例外チェック

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"); 

はまだ私は例外を取得しておきます。なにが問題ですか?何かご意見は?

+2

ここでNullPointerExceptionを取得していますか?ポストスタックトレースと関連コード。 – m0skit0

答えて

2

私はあなたのコードが構成されている正確にどのように上に掲載のコードで伝えることはできませんが、これはNullPointerException修正する必要があります:あなたはそれの後に例外を取得し続ける場合

Element div = doc.getElementById("eventTTL"); 
String attr = ""; 

if(div != null) 
    attr = div.attr("eventTTL"); 

、私は問題が別の場所だと思いますあなたの例を更新する必要があります。

0

あなたのスタックトレースを見ることなく、私は推測しますが、しています:

を使用すると、エラーであると言うラインから、それは前の行が犯人であることを示していると思われる、divがヌルであることを意味し、これdocにIDがeventTTLの要素がないことを意味します。

docが有効で、実際にはeventTTLであることを確認してください。

1

コードを変更すると、コンパイルエラーが発生します。クラスファイルは作成されませんので、古いクラスファイルを実行している可能性があります。

おそらくこれを行う必要があります(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"); 
    ... 
}