为什么catch后就跑出这个异常呢?怎么改?

public static String getStrXML(String reqXML,String temp){//处理积分基本信息查询
Document objDOM = DocumentHelper.createDocument();
try {
objDOM=DocumentHelper.parseText(reqXML);
} catch (DocumentException e) {
// TODO Auto-generated catch block
temp="erro";
e.printStackTrace();
return temp;//想在这里捕获异常后,返回temp给调用该方法的函数,然后继续执行这个函数中的其他语句,而不是后台进程终止执行,怎么处理。。急用,谢谢指点!!!
}
Node node = objDOM.selectSingleNode("//"+temp);
String uu=node.getText();
return uu;
}
org.dom4j.DocumentException: Error on line 1 of document : 元素的内容必须由格式正确的字符数据或标记构成。 Nested exception: 元素的内容必须由格式正确的字符数据或标记构成。
at org.dom4j.io.SAXReader.read(SAXReader.java:482)

aluckdog
浏览 87回答 3
3回答

明月笑刀无情

什么意思,java的异常设计结构是不可恢复的,即出现异常表明程序不能继续进行catch如果捕获了,程序就不会进行了。不但是java,多数语言的异常模型都是不可恢复的。包括C。楼上说可以,难道还有别的方法? 我想了下,如果要实现,多线程可能可以解决,你可以设置一个全局变量static的变量,这样一个线程死亡之前给把参数保留在这个类里面。楼上说:捕获的范围进行一下调整,catch (DocumentException e)改成catch(Exception e)试试 .是肯定不行的,因为Exception 比DocumentException 要大是它的父类。

智慧大石

你说的是继续执行吗?用finally啊..try{}catch{}finally{//这里写入的语句不管是否捕获异常都会被执行}

墨色风雨

你把 temp定义到try之外。然后在遇到异常后,给temp赋值,不要在catch中写什么return就行。例如:……………………Document objDOM = DocumentHelper.createDocument();String temp ="";try{……}catch (DocumentException e) {temp = "error";}Node node = objDOM.selectSingleNode("//"+temp);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java