0

我正在使用 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() 并假设它不会超时或停止?

4

1 回答 1

1

只需调用 server.start()。

您的代码似乎正在尝试以递归方式重新启动服务器,但由于方法名称的混淆,它不会,并且无论如何它都不会捕获在后台线程中运行的服务器中的异常。

于 2014-05-25T22:35:54.357 回答