Java 我应该如何处理PhoneDirectory程序中的NullPointerException

Java 我应该如何处理PhoneDirectory程序中的NullPointerException,java,exception,nullpointerexception,Java,Exception,Nullpointerexception,我正在尝试为我的PhoneDirectory程序创建一个addChangeEntry方法,其功能是搜索并在传递的姓名不存在时向目录中添加新条目,或者如果联系人已经存在,则更新其号码 我不断得到NullPointerException,因为我相信我的x值等于null。在了解了这一点之后,我尝试捕获并处理异常,但仍然收到NullPointerException addChangeEntry代码: public String addChangeEntry(String name, String tel

我正在尝试为我的PhoneDirectory程序创建一个addChangeEntry方法,其功能是搜索并在传递的姓名不存在时向目录中添加新条目,或者如果联系人已经存在,则更新其号码

我不断得到NullPointerException,因为我相信我的x值等于null。在了解了这一点之后,我尝试捕获并处理异常,但仍然收到NullPointerException

addChangeEntry代码:

public String addChangeEntry(String name, String telno) {
    for (DirectoryEntry x : theDirectory) {
        try {
            if (x == null) {
                Logger logger = Logger.getLogger(ArrayPhoneDirectory.class.getName());
                logger.log(Level.WARNING, "User with no name found");
                continue;
            }

            else if (x.getName().equals(name)) {
            x.setNumber(telno);
            return x.getNumber();
            }

            add(name, telno);
        }
            catch (Exception ex) {
        System.out.println("Exception found");
        throw ex;
            }
        }
    return null;
}

如果您能提供有关如何处理此异常的任何帮助,我们将不胜感激,因为它目前正在停止我对程序的测试。

如果您的假设是正确的,并且关于
x
为空。那么这可能是您的问题,在捕获异常后,您可以通过
throw ex这就是为什么你仍然得到它。如果不希望程序停止,只需将其从代码中删除。

不允许
目录
有null@staticx我在哪里声明?您是否初始化了目录?因为如果一个对象是空的,那么你所拥有的应该是有效的,但是如果你没有初始化这个对象,你将拥有一个error@Snox这是我用来初始化目录的行<代码>私有目录项[]目录=新目录项[容量]我现在有一种感觉,可能是目录是空的,因为在我的for循环中发生的所有事情都是在没有用户的情况下搜索目录数组,从而导致异常。这听起来可能吗?那么您应该首先检查目录,或者将目录移动到之前