1

Jettyをライブラリとして使用して、サーブレット サーバーをアプリケーションに埋め込むことができます。これを行うには、 Serverクラスのインスタンスを作成し、ある時点で start を呼び出します。このメソッドは例外をスローします。純粋な Exception (特殊化されたサブクラスではない) をキャッチまたはスローすることは、悪いスタイルです。これを回避し、この一般的な例外を処理せずに実行中のアプリケーションで Jetty サーバーを取得する方法を知っている人はいますか?

4

2 に答える 2

4

投げるだけでない限り、キャッチExceptionは悪い習慣です。回避策はありません。の別個のサブクラスをキャッチすると、それらの一部を見逃す可能性があるという欠点があります。ExceptionException


アプリケーションで Jetty が起動しないことの意味は何ですか? 複数のアプローチを使用できます。

続行する必要があるコンポーネント レベルで決定する

try { 
    server.start();
    reportingAvailable = true;
} catch ( Exception e ) { 
    log("Jetty failed to start. Reporting will we unavailable", e);
}

致命的な例外として扱う

try { 
    server.start();
} catch ( Exception e ) { 
    throw new RuntimeException("Jetty failed to start", e);
}

回復可能な例外として扱う

try { 
    server.start();
} catch ( Exception e ) { 
    throw new JettyFailedToStartException(e); // JettyFailedToStartException !instanceof RuntimeException
}
于 2009-07-07T12:41:11.307 に答える
0

何らかの方法で対処することを強くお勧めします

Jetty が起動できない場合 (指定されたポートにバインドするなど)、何らかの方法でそれを管理する必要があります。少なくともこれをログに記録して、Web サーバーが実行されていないことを確認してください。しばらくしてから再試行してください。

ポイントは、Jetty が起動できないことであり、それを気にする必要があります。

于 2009-07-07T12:27:23.580 に答える