java 怎样捕获异常后,程序不中止,继续执行,返回参数
publicstaticStringgetStrXML(StringreqXML,Stringtemp){//处理积分基本信息查询DocumentobjDOM=Docum...
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)
catch后让然跑出这个异常。。 展开
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)
catch后让然跑出这个异常。。 展开
5个回答
展开全部
你把 temp定义到try之外。然后在遇到异常后,给temp赋值,不要在catch中写什么return就行。
例如:
……………………
Document objDOM = DocumentHelper.createDocument();
String temp ="";
try{
……
}catch (DocumentException e)
{
temp = "error";
}
Node node = objDOM.selectSingleNode("//"+temp);
……………………
例如:
……………………
Document objDOM = DocumentHelper.createDocument();
String temp ="";
try{
……
}catch (DocumentException e)
{
temp = "error";
}
Node node = objDOM.selectSingleNode("//"+temp);
……………………
展开全部
什么意思,java的异常设计结构是不可恢复的,即出现异常表明程序不能继续进行catch如果捕获了,程序就不会进行了。不但是java,多数语言的异常模型都是不可恢复的。包括C。
楼上说可以,难道还有别的方法?
我想了下,如果要实现,多线程可能可以解决,你可以设置一个全局变量static的变量,这样一个线程死亡之前给把参数保留在这个类里面。
楼上说:捕获的范围进行一下调整,catch (DocumentException e)改成catch(Exception e)试试 .是肯定不行的,因为Exception 比DocumentException 要大是它的父类。
楼上说可以,难道还有别的方法?
我想了下,如果要实现,多线程可能可以解决,你可以设置一个全局变量static的变量,这样一个线程死亡之前给把参数保留在这个类里面。
楼上说:捕获的范围进行一下调整,catch (DocumentException e)改成catch(Exception e)试试 .是肯定不行的,因为Exception 比DocumentException 要大是它的父类。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说的是继续执行吗?
用finally啊..
try{
}catch{
}finally{
//这里写入的语句不管是否捕获异常都会被执行
}
用finally啊..
try{
}catch{
}finally{
//这里写入的语句不管是否捕获异常都会被执行
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
捕获的范围进行一下调整,catch (DocumentException e)改成catch(Exception e)试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按照道理来说你用了try,catch,程序是不会终止的啊,如果你运行的时候仍然终止,那一定是你的代码有问题!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |