我不停地從許多開發人員那裏得到這個「建議」。根據我的經驗,我發現EJBExceptions非常適合從bean實例的角度來看「世界末日」(比如當某些事情錯誤時,bean實例無法自行恢復)。如果一個實例可以恢復,我認爲最好拋出一個應用程序異常。爲什麼拋出一個EJBException是一個「推薦」的做法?
這裏是我遇到了一遍又一遍的模式:
private SomeResource resource; ejbCreate: resource = allocateResource(...); omMessage: try { ... } catch (JMSException e) { throw new EJBException(e); } ejbRemove: freeResource(resource);
恕我直言,這是導致資源泄漏一個反模式。
編輯:具體來說,EJB規範中說,如果一個bean從業務方法拋出運行時異常(和EJBException的是運行時異常),那麼這個bean是不調用的ejbRemove它丟棄。
這是否是拋出EJBException的相關示例? 應該拋出EJBException的相關情況是什麼?
@vinny_g:我從您的評論我的(現已刪除)「答案」補充解釋。 – 2009-10-17 07:45:39