环境:JDK7 tomcat7 servlet jdom1.1.2
static void check(String name,String key)
{
Element el = null;
try {
System.out.println("0");
el = (Element)XPath.selectSingleNode(doc, "//client[@name='" + name + "']");
System.out.println("1");
} catch (Exception e) {
System.out.println("2"));
}
                finally{System.out.println("3"));} }
项目XP上运行正常,拷贝到win7上后出现问题,经排查找到问题所在位置。如上:在tomcat的输出窗口里看到了"0" 、看到了“3”,但让人不可理解的是“1”和“2”都没看到(反复试了十几次,保证不是偶发情况)真是难以置信啊!由于同样代码在XP上运行正常,所以基本能排除代码问题了吧--这么简单代码它确实没问题啊,那么是哪出bug了呢?

解决方案 »

  1.   

    可以肯定的是,肯定报异常了,否则“1”就能输出来。
    你将catch (Exception e)
    改成
    catch (Throwable e)
    再试下
      

  2.   

    非常感谢楼上朋友方法,使用Throwable后就找到异常信息了,原来是少了个包:jaxen-1.1.4 这个包是JDOM所依赖的。我以前并未把它显式加入项目,但运行也没问题,来win7上却不行了,当然项目转移过程也是比较麻烦的,不能排除自己忘了些什么,总之把这个包加进项目后就OK了。