我正在開發一個java web應用程序,我有幾個關於設計的問題。設計問題:我應該在多大程度上依賴於控制流程的例外情況?
基本上在其當前版本中,它在很大程度上依賴捕捉異常來確定控制流程。
例如在我的一個spring服務類中,我有以下方法來檢查作爲參數給出的電子郵件是否存在於數據庫中。
@Override
public boolean validateEmailAddressDoesNotExist(String accountEmailAddress) {
try {
return !dao.checkIfEmailAddressAlreadyExists(accountEmailAddress);
} catch (NoResultException re) {
log.error("NoResultException", re);
} catch (RuntimeException re) {
log.error("RuntimeException", re);
}
return true;
}
//from "dao" class
public boolean checkIfEmailAddressAlreadyExists(String accountEmailAddress) {
return (loadAccountFromAccountEmailAddress(accountEmailAddress) == null ? false : true);
}
//also from "dao" class
public Account loadAccountFromAccountEmailAddress(String accountEmailAddress) {
return entityManager.createNamedQuery("Account.findByEmailAddress", Account.class).setParameter("accountEmailAddress", accountEmailAddress).getSingleResult();
}
我懷疑我目前的設計可能是錯誤的,但我將不勝感激閱讀您的意見和看法一下和你相信它在多大程度上是有缺陷的。
這可能更適合http://codereview.stackexchange.com/ – 2012-02-16 15:51:33
@All:非常感謝您的答覆! – balteo 2012-02-17 20:53:19
@ Rich.Okelly:不知道這個網站。這似乎也很有趣。下次我有這個問題時,我會用這個... – balteo 2012-02-17 20:54:07