1
的cloneNode()方法在下面的最小示例關於java 1.6工作原理,但根據SDK文檔下的Android 5.拋出:DOMException而克隆XML節點
代碼14的代碼14拋出拋出:DOMException指: 「NAMESPACE_ERR 如果試圖以對命名空間不正確的方式創建或更改對象。「
有沒有人知道爲什麼這可能是? 提前謝謝!
public class M
{
public static void main(String[] args)
{
try
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
String text = new String("<blub></blub>");
Document document = builder.parse(new InputSource(new StringReader(text)));
document.getDocumentElement().cloneNode(true);
}
catch(DOMException e)
{}
catch(ParserConfigurationException e)
{}
catch(IOException e)
{}
catch(SAXException e)
{}
}
}
我注意到你忽略了4種不同類型的異常。如果你扔掉DOMException,我不知道你是如何知道這是你得到的例外,或者是什麼。在這樣的測試應用程序中,您可能希望從main中拋出異常,而不是寫空處理程序: 'public static void main(String [] argv)throws Exception {}'。 然後,您可以在運行代碼時看到堆棧跟蹤。 從您的描述中不清楚哪個語句拋出了DOMException。 – iter
你可以嘗試玩factory.setNamespaceAware() – iter
謝謝我已經檢查過,但不幸的是factory.setNamespaceAware()沒有任何影響。我想知道其他人是否可以重現這個問題? btw:我知道我得到了什麼異常,因爲我在eclipse中使用異常斷點或者只是單步執行代碼。如果我會「忽略」異常,我將如何知道異常對象e中的代碼屬性的狀態? 什麼行引發異常寫在我的問題的第一行:「cloneNode()方法[...]拋出[...]」 – beutelfuchs