NullPointerException

编辑 锁定
NullPointerException是java.lang.NullPointerException的简称,是Java语言中的一个异常类,位于java.lang包中,父类是java.lang.RuntimeException,该异常在源程序中可以不进行捕获和处理。[1] 
中文名
空指针异常
外文名
NullPointerException
范    畴
Java语言
父    类
java.lang.RuntimeException

目录

NullPointerException简介

编辑
当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括:
  • 调用 null 对象的实例方法。
  • 访问或修改 null 对象的字段。
  • 如果一个数组为null,试图用属性length获得其长度时。
  • 如果一个数组为null,试图访问或修改其中某个元素时。
  • 在需要抛出一个异常对象,而该对象为 null 时。
  • 应用程序将会抛出NullPointerException类的实例,表明其他对 null 对象的非法使用。

NullPointerException示例程序

编辑
以下给出上面5种情况的示例程序。
(1)调用 null 对象的实例方法。
class Point {
    public int x, y;
    public int getX() { 
        return x;
    }
}

public class TestNullPointerException {
    static Point p1;
    
    public static void main(String args[]){
        
        p1.getX(); // 此处抛出NullPointerException    
        
    }
}

(2)访问或修改 null 对象的字段。
class Point {
    public int x, y;
    public int getX() { 
        return x;
    }
}

public class TestNullPointerException {
    static Point p1;
    
    public static void main(String args[]){
        
        p1.x = 1; // 此处抛出NullPointerException    
        
    }
}

(3)如果一个数组为null,试图用属性length获得其长度时。
public class TestNullPointerException {
    
    static int[] ia;
    
    public static void main(String args[]){        

        System.out.println(ia.length);    // 此处抛出NullPointerException
        
    }
}

(4)如果一个数组为null,试图访问或修改其中某个元素时。
public class TestNullPointerException {
    
    static int[] ia;
    
    public static void main(String args[]){        
        ia[0] = 1;    // 此处抛出NullPointerException        
    }
}

(5)在需要抛出一个异常对象,而该对象为 null 时。
class MyException extends RuntimeException {
}

public class TestNullPointerException {
    
    static MyException e;
    
    public static void main(String args[]){                
        throw e; // 此处抛出NullPointerException
    }
}

参考资料
词条标签:
软件 科技产品 科学 互联网产品