Jettyをライブラリとして使用して、サーブレット サーバーをアプリケーションに埋め込むことができます。これを行うには、 Serverクラスのインスタンスを作成し、ある時点で start を呼び出します。このメソッドは例外をスローします。純粋な Exception (特殊化されたサブクラスではない) をキャッチまたはスローすることは、悪いスタイルです。これを回避し、この一般的な例外を処理せずに実行中のアプリケーションで Jetty サーバーを取得する方法を知っている人はいますか?
1497 次
2 に答える
4
投げるだけでない限り、キャッチException
は悪い習慣です。回避策はありません。の別個のサブクラスをキャッチすると、それらの一部を見逃す可能性があるという欠点があります。Exception
Exception
アプリケーションで 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 に答える