有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

  1. # 1 楼答案

    不,不

    使用catch关键字捕捉Exception

    try {
       User thingie = hibernateDao.findUserByEmail(email);
    }
    catch (CustomerNotFoundException cnfe) {
        // TODO some logic on failure
    }
    

    如果您使用的是try/catch机制,并且没有重新调用Exception,那么也可以从searchCustomer方法的签名中删除throws语句