当前位置: 代码迷 >> Java Web开发 >> 请问一个关于错误无法捕捉的有关问题(急)
  详细解决方案

请问一个关于错误无法捕捉的有关问题(急)

热度:5086   发布时间:2013-02-25 21:17:57.0
请教一个关于异常无法捕捉的问题(急)
我做的程序是一个JSP的游戏网站。里面有个后台程序每1秒钟运行一次。
使用的是timer.schedule。
timer.schedule(new java.util.TimerTask() { public void run() { Background.run();} }, 0, 1000);

在Background.run()里面有段代码,很简单,调用一个后台函数。这段代码在每个小时开始的时候执行一次。但是,这段代码中有个莫名其妙的问题,只要执行到这段代码,后台程序就无法运行了。所以造成了服务器运行1小时就挂了的现象。

之所以我知道是这段代码有问题,是因为我把这段代码注释掉之后,一切都正常了。但是,我用Try Catch却无法捕捉到其中的异常。当然,这代码里面也绝对不会有关闭timer的函数。不知道是什么原因导致后台线程中止运行。

请高手指教。


------解决方案--------------------------------------------------------
堵塞了!!!

楼主好好补习线程方面的知识吧。
------解决方案--------------------------------------------------------
1) 首先你需要检查是否是runHour()造成的
试验一下不从Timer中调用runHour,而是直接调用它,是否会有问题

2) 给Background.run()方法加上synchronized
public static synchronized void run()

3) 如果timer = new Timer(true);
改成timer = new Timer();看看
  相关解决方案