NullPointerException是java.lang.NullPointerException的简称,是Java语言中的一个异常类,位于java.lang包中,父类是java.lang.RuntimeException。该异常在源程式中可以不进行捕获和处理。
基本介绍
- 中文名:空指针异常
- 外文名:NullPointerException
- 範畴:Java语言
- 父类:java.lang.RuntimeException
简介
当应用程式试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括:
- 调用 null 对象的实例方法。
- 访问或修改 null 对象的栏位。
- 如果一个数组为null,试图用属性length获得其长度时。
- 如果一个数组为null,试图访问或修改其中某个元素时。
- 在需要抛出一个异常对象,而该对象为 null 时。
应用程式将会抛出NullPointerException类的实例,表明其他对 null 对象的非法使用。
示例程式
以下给出上面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 }}