如何检查是否抛出异常

时间:2014-11-27 14:41:28

标签: java

如果我有这样的事情:

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 { .... }
        }

这是一个好方法还是有更好的方式?

1 个答案:

答案 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>