從EJB規範引述:EJB 3.0例外處理
如果bean方法遇到系統異常或錯誤,應該 簡單地從bean方法的錯誤傳播到容器 (即bean方法不必捕獲異常)。
但我不明白。這是否意味着我不應該捕捉所有類型的異常(即嘗試捕捉Exception
類)並將它重新拋出爲我的應用程序異常?
爲了更清楚的例子:
public void beanMethod throws MyApplicationException {
try {
// do something
} catch (Exception e) {
throw new MyApplicationException(e); // Should I do it like this?
}
}
或者這不是EJB開發,但僅用於EJB引用的實現開發者(容器開發者):在後一種情況下,作爲結果,容器必須不會將系統異常傳播到我的業務方法,並且我的catch(Exception e)
塊永遠不會捕獲任何系統異常?
I.e.你建議我在ejb方法中根本沒有try-catch塊? – MyTitle
是的。這是很少需要的。 –
也許如果你想包裝一個非RuntimeException給你自己的。例如,SQLException - > MyBusinessException。 –