gpt4 book ai didi

Java Servlet - 空指针异常

转载 作者:行者123 更新时间:2023-12-01 18:56:34 24 4
gpt4 key购买 nike

我在 servlet 中有以下代码:

try
{
EntityManagerFactory emFactory = Persistence.createEntityManagerFactory("Flights_AssignmentPU");
EntityManager em = emFactory.createEntityManager();

Query query = em.createNamedQuery("Passengers.findByPassportNum");
query.setParameter("passportNum", passport);
List<Passengers> result = query.getResultList();
em.close();

for(int i = 0; i < result.size(); i++)
{
name = result.get(i).getName();
surname = result.get(i).getSurname();
email_address = result.get(i).getEmail();
}
}
catch(Exception e)
{
response.sendRedirect("ErrorPage.html");
}

if(email_address.isEmpty() == false)
{
//Send email using email address
}

当用户在数据库中有电子邮件地址时,此代码可以正常工作。但是,如果数据库中的电子邮件字段为空,GlassFish Server 会给我一个空指针异常。

造成这种情况的罪魁祸首肯定是这个:

        email_address = result.get(i).getEmail();

由于某种原因,当用户没有电子邮件时,这一行会出现刚才描述的错误。我该如何解决这个问题?

编辑

方法getEmail是在创建实体类时自动生成的(我已经使用了持久化)。

这是它的代码:

public String getEmail() {
return email;
}

最佳答案

我认为问题在于这一行:

if(email_address.isEmpty() == false)
{
//Send email using email address
}

当数据库的电子邮件为空时,您可能会收到 null 响应。您正在对 null 引用调用 isEmpty() 操作,这会导致 NullPointerException

在调用 isEmpty() 之前进行 null 检查

示例:

if(email_address != null && email_address.isEmpty() == false)
{
//Send email using email address
}

关于Java Servlet - 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13766928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com