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 に答える