如果我有这样的事情:
public User findUserByEmail(String email) throws CustomerNotFoundException{
List<User> users = new ArrayList<User>();
users = sessionFactory.getCurrentSession().createQuery("from User where email = ?").setParameter(0,email).list();
if (users.size() > 0) {
return users.get(0);
} else {
throw new CustomerNotFoundException();
}
}
在这一刻,我想检查返回的findUserByEmail(String email)方法,最后是否返回User对象或CustomerNotFoundException。
我试过这种方式
private boolean searchCustomer(String email) throws CustomerNotFoundException{
if (hibernateDao.findUserByEmail(email).getClass() == User.class) {
....
} else { .... }
}
这是一个好方法还是有更好的方式?
答案 0 :(得分:3)
没有。 Nonononono。
使用catch
关键字来捕获Exception
。
try {
User thingie = hibernateDao.findUserByEmail(email);
}
catch (CustomerNotFoundException cnfe) {
// TODO some logic on failure
}
如果您使用throws
/ searchCustomer
机制而不是重新抛出try
,请从catch
方法的签名中删除Exception
声明。< / p>