Java 我应该如何处理PhoneDirectory程序中的NullPointerException
我正在尝试为我的PhoneDirectory程序创建一个addChangeEntry方法,其功能是搜索并在传递的姓名不存在时向目录中添加新条目,或者如果联系人已经存在,则更新其号码 我不断得到NullPointerException,因为我相信我的x值等于null。在了解了这一点之后,我尝试捕获并处理异常,但仍然收到NullPointerException addChangeEntry代码:Java 我应该如何处理PhoneDirectory程序中的NullPointerException,java,exception,nullpointerexception,Java,Exception,Nullpointerexception,我正在尝试为我的PhoneDirectory程序创建一个addChangeEntry方法,其功能是搜索并在传递的姓名不存在时向目录中添加新条目,或者如果联系人已经存在,则更新其号码 我不断得到NullPointerException,因为我相信我的x值等于null。在了解了这一点之后,我尝试捕获并处理异常,但仍然收到NullPointerException addChangeEntry代码: public String addChangeEntry(String name, String tel
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循环中发生的所有事情都是在没有用户的情况下搜索目录数组,从而导致异常。这听起来可能吗?那么您应该首先检查目录,或者将目录移动到之前