使用add捕获异常

时间:2014-04-15 19:19:40

标签: java exception try-catch

我在main方法中写了这个语句 异常将在(GuaranteeYears)中,所以我把它放在try块中。

首先在main我创建一个Store对象并在参数中传递数字4,在Store类中我将有一个名为arrProduct的数组,它将具有长度4:

boolean flag1 = true;
while (flag1) {
    try {
        System.out.println("Ente GuaranteeYears");
        int GuaranteeYears=read.nextInt();

        StrongDevice s = new StrongDevice(code,type,price,Model,Capacity,GuaranteeYears); //the object

        flag1 = false;
        x.addProduct(s);
     }

这是我的添加方法

public boolean addProduct(Product p) {
    if(arrProduct.length==NumOfProduct)
        return false;

    arrProduct[NumOfProduct]=p;
    NumOfProduct++;
    return true;
}

我的问题是:当我创建对象并将其添加到数组时它会给我NullPointerException - 为什么会这样?

1 个答案:

答案 0 :(得分:0)

据我了解,导致NPE的行是

x.addProduct(s);

很可能这是由数组arrProduct引起的,它未被初始化,并在访问时导致NPE

要解决此问题,请确认arrProduct始终在Store对象创建时正确初始化。