如何重启main方法
怎么重启main方法
当socket网络中断或出现其他问题的异常时候,需要重启整个main方法 现在是为什么异常会越来越多?
前辈们给点指导要怎么处理这样的异常!!
------最佳解决方案--------------------
你要做的问题,不是重启main方法;而是有效捕获异常并处理,然后重新执行网络连接之类的工作,类似于:
------其他解决方案--------------------
start() 里面是啥样的?
------其他解决方案--------------------
start是怎么处理?reconnetct是怎么调用?
------其他解决方案--------------------
看起来楼主的重连会出现 stack overflow,因为如果人家就是把 GPRS 和 Wi-Fi 关了,你这样一直试就会 stack overflow,因为是在几个方法之间循环调用。
推荐不要在 connect 里再 connect。
应该在循环里面 connect 失败了就 loop next。
------其他解决方案--------------------
开始时这样的异常
2012-07-24 01:55:18,586[main] INFO Proxy:108 - Connection reset
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:185)
at com.hc.socket.Proxy.decompress(Proxy.java:91)
at com.hc.data.SocketData.upDate(SocketData.java:44)
at com.hc.jdbc.C3poData.start(C3poData.java:581)
at com.hc.jdbc.C3poData.main(C3poData.java:599)
关闭所有socket连接后在次报异常
2012-07-26 18:12:33,667[main] INFO Proxy:108 - Connection reset
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:185)
at com.hc.socket.Proxy.decompress(Proxy.java:91)
at com.hc.data.SocketData.upDate(SocketData.java:44)
at com.hc.jdbc.C3poData.start(C3poData.java:581)
at com.hc.jdbc.C3poData.stop(C3poData.java:596)
at com.hc.socket.Proxy.ReConnect(Proxy.java:119)
at com.hc.socket.Proxy.decompress(Proxy.java:109)
at com.hc.data.SocketData.upDate(SocketData.java:44)
at com.hc.jdbc.C3poData.start(C3poData.java:581)
at com.hc.jdbc.C3poData.stop(C3poData.java:596)
at com.hc.socket.Proxy.ReConnect(Proxy.java:119)
at com.hc.socket.Proxy.decompress(Proxy.java:109)
at com.hc.data.SocketData.upDate(SocketData.java:44)
at com.hc.jdbc.C3poData.start(C3poData.java:581)
at com.hc.jdbc.C3poData.stop(C3poData.java:596)
at com.hc.socket.Proxy.ReConnect(Proxy.java:119)
at com.hc.socket.Proxy.decompress(Proxy.java:109)
at com.hc.data.SocketData.upDate(SocketData.java:44)
at com.hc.jdbc.C3poData.start(C3poData.java:581)
at com.hc.jdbc.C3poData.stop(C3poData.java:596)
at com.hc.socket.Proxy.ReConnect(Proxy.java:119)
at com.hc.socket.Proxy.decompress(Proxy.java:109)
at com.hc.data.SocketData.upDate(SocketData.java:44)
at com.hc.jdbc.C3poData.start(C3poData.java:581)
at com.hc.jdbc.C3poData.main(C3poData.java:599)
当socket网络中断或出现其他问题的异常时候,需要重启整个main方法 现在是为什么异常会越来越多?
前辈们给点指导要怎么处理这样的异常!!
------最佳解决方案--------------------
你要做的问题,不是重启main方法;而是有效捕获异常并处理,然后重新执行网络连接之类的工作,类似于:
public static void main(String[] args) {
while (true) {
try {
doSocket();
}catch(Exception ex) {
ex.printStackTrace(); // 有异常了
}
}
}
public static void doSocket() {
连接网络或其它动作
}
------其他解决方案--------------------
start() 里面是啥样的?
------其他解决方案--------------------
start是怎么处理?reconnetct是怎么调用?
------其他解决方案--------------------
看起来楼主的重连会出现 stack overflow,因为如果人家就是把 GPRS 和 Wi-Fi 关了,你这样一直试就会 stack overflow,因为是在几个方法之间循环调用。
推荐不要在 connect 里再 connect。
应该在循环里面 connect 失败了就 loop next。
------其他解决方案--------------------
开始时这样的异常
2012-07-24 01:55:18,586[main] INFO Proxy:108 - Connection reset
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:185)
at com.hc.socket.Proxy.decompress(Proxy.java:91)
at com.hc.data.SocketData.upDate(SocketData.java:44)
at com.hc.jdbc.C3poData.start(C3poData.java:581)
at com.hc.jdbc.C3poData.main(C3poData.java:599)
关闭所有socket连接后在次报异常
2012-07-26 18:12:33,667[main] INFO Proxy:108 - Connection reset
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:185)
at com.hc.socket.Proxy.decompress(Proxy.java:91)
at com.hc.data.SocketData.upDate(SocketData.java:44)
at com.hc.jdbc.C3poData.start(C3poData.java:581)
at com.hc.jdbc.C3poData.stop(C3poData.java:596)
at com.hc.socket.Proxy.ReConnect(Proxy.java:119)
at com.hc.socket.Proxy.decompress(Proxy.java:109)
at com.hc.data.SocketData.upDate(SocketData.java:44)
at com.hc.jdbc.C3poData.start(C3poData.java:581)
at com.hc.jdbc.C3poData.stop(C3poData.java:596)
at com.hc.socket.Proxy.ReConnect(Proxy.java:119)
at com.hc.socket.Proxy.decompress(Proxy.java:109)
at com.hc.data.SocketData.upDate(SocketData.java:44)
at com.hc.jdbc.C3poData.start(C3poData.java:581)
at com.hc.jdbc.C3poData.stop(C3poData.java:596)
at com.hc.socket.Proxy.ReConnect(Proxy.java:119)
at com.hc.socket.Proxy.decompress(Proxy.java:109)
at com.hc.data.SocketData.upDate(SocketData.java:44)
at com.hc.jdbc.C3poData.start(C3poData.java:581)
at com.hc.jdbc.C3poData.stop(C3poData.java:596)
at com.hc.socket.Proxy.ReConnect(Proxy.java:119)
at com.hc.socket.Proxy.decompress(Proxy.java:109)
at com.hc.data.SocketData.upDate(SocketData.java:44)
at com.hc.jdbc.C3poData.start(C3poData.java:581)
at com.hc.jdbc.C3poData.main(C3poData.java:599)