2009-07-07 78 views
1

Jetty可以用作庫來將servlet-server嵌入到應用程序中。爲此,您創建類Server的實例並在某個時刻調用start。此方法拋出異常。捕捉或拋出純粹的Exception(不是專門的子類)是不好的風格。有誰知道,我可以如何避免這種情況,並在我的應用程序中運行Jetty服務器而不處理這個一般的異常?如何避免Jetty中服務器類拋出的一般異常?

回答

4

捕捉Exception是不好的做法除非只有Exception被拋出。沒有解決方法。捕獲不同的Exception的子類別的缺點是可能會遺漏某些子類別。


Jetty未能在您的應用程序中啓動的含義是什麼?你可以有多種途徑:

決定在組件級,你應該proceeed

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 
} 
0

我會強烈建議你以某種方式處理它。

如果Jetty無法啓動(例如綁定到其指定的端口),那麼您將想要以某種方式管理它。至少要記錄這個,這樣你就知道你沒有運行Web服務器。也許在一段時間後重試?

問題是Jetty無法啓動,您應該關心這一點。