各位达人,本来是java菜鸟,最近在做一个网页抓取方面的项目。程序总是在运行若干小时之后就停止运行。
    检查了一下console中记录的内容,只有一句话重复显示了很多遍
    at com.arcsoft.infoclientdigger.ClientProductDigger.DiggerProductList(ClientProductDigger.java:388)
这句话所指出的位置是函数DiggerProductList嵌套调用DiggerProductList的位置。但是除了上面这句话之外,没有任何其他信息。
    我本以为是异常,就在catch中增加了代码打印异常信息到文本文件中,并且也测试了一下确定此方法可行。但是再次测试之后,文本文件中并没有任何异常的记录。
    所以现在非常迷惑,不知道从何查起。哪位强人遇到或者知道这个问题的,请帮忙给点线索吧,感谢之至!

解决方案 »

  1.   

    如果是异常的话,会捕获不到?或者是无法打印出来?
    我的捕获异常的代码里面调用了printStackTrace和log4j的error函数,
    没有打印出任何东西来
      

  2.   

    可打印下java内存使用情况,看看是否是内存问题
      

  3.   

    at com.arcsoft.infoclientdigger.ClientProductDigger.DiggerProductList(ClientProductDigger.java:388)从常理判断,前面肯定抛异常了,这句只是指出异常出现的位置。
      

  4.   

    终于解决了,原来其实是嵌套的深度太深了,多达1千多层,导致栈溢出。而异常信息把call stack里面这一千多个DiggerProductList打印出来之后前面的就刷新了,所以我看到的全部都是那句嵌套的函数。现在把实现方法改掉,不采用嵌套了,程序终于能够一直运行下去了。多谢大家的帮助!