2011-03-23 29 views
0
public static String getElementXpath(DOMElement elt){ 
     String path = ""; 

     for (; elt != null; elt = (DOMElement) elt.getParentNode()){ 

      System.out.println("THIS ONE " + path); 
     } 
     System.out.println("NEXT ONE " + path); 
     return path;        
    } 

NEXT ONE甚至不打印。我試過在for循環之後添加任何東西,但它們似乎沒有運行。難道不應該有可以捕捉到的異常嗎?我執行函數getElementXpath的主要方法拋出異常。我試圖刪除拋出異常和相同的結果。Java:循環之後代碼沒有運行?

+0

該方法是否返回? – 2011-03-23 00:31:57

+0

那麼如果出現異常,爲什麼不在'getElementXpath()'中寫'try..catch'並查看它是否捕獲任何東西。 – julkiewicz 2011-03-23 00:36:59

+0

沒有例外......這是奇怪的事情。該方法似乎沒有返回。 – KJW 2011-03-23 00:48:13

回答

3

在其他地方吞下異常似乎是唯一可能的解釋。將循環封裝在try-catch塊中,打印異常並重新拋出。爲了測試,抓住Throwable。也許可以添加一個finally塊。

我執行函數getElementXpath的主要方法拋出異常。

這沒關係,可能會出現RuntimeException甚至是錯誤。你不應該在沒有理由的情況下申報throws Exception,但它不能成爲這裏的罪魁禍首。

0

path用「」初始化,但從未再次分配。

+0

-1 - 答案與問題無關。 (我確信OP完全知道他的方法不完整,只是他試圖解決的問題的演示!) – 2011-03-23 01:16:24

+0

你說得對。在閱讀了錯誤的代碼後,我太過於關注顯而易見的錯誤,'下一個甚至不打印'意味着甚至不會打印'NEXT ONE',而不是'NEXT ONE'後面的'path'。我想知道爲什麼關於例外的答案是高調的,但還不夠。 :) – 2011-03-23 01:30:30