我正在使用com.sun.net.httpserver编写我的第一个Java Web服务器。我想知道这段代码是合乎逻辑的还是必要的。具体来说,我想知道服务器是否会在某个时刻停止,需要手动重启。
/**
* Starts server, on error sleeps for 500ms and restarts server
*/
private static void runServer(HttpServer server) {
try {
server.start();
} catch (Exception e) {
e.printStackTrace();
try {
Thread.sleep(500);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
runServer(server);
}
}
这有意义吗?或者我应该只调用server.start()并假设它不会超时或停止?
答案 0 :(得分:1)
只需调用server.start()。
您的代码似乎试图以递归方式重新启动服务器,但由于对方法名称的混淆,它不会,并且在任何情况下它都不会捕获在后台线程中运行的服务器中的异常。