避免NullPointerException异常的几种常用方法

来源:互联网 发布:08定额预算软件 编辑:程序博客网 时间:2024/06/04 19:29

在写JAVA程序的时候,特别是jsp/servlet之类的东西,经常会有这样一种情况:当然你辛辛苦苦地打下了千百行字母的时候,写完最后一个大括号;当你运行这个程序进行调试时,忽然出现NullPointerException的字样,你是不是很懊丧呢。在以前我肯定会随手拿起桌上的杯子砸了。
  经过了一年多的打字母经历,我渐渐的总结出了一些经验,关于NullPointerException这个恶棍。
  NullPointerException这个异常出现在处理对象时对象不存在但又没有捕捉到进行处理的时候,但是在JAVA里面它又是被大多断片的类所抛出,所以它经常会不经意的出现在你的面前。在api里的原文说明是这样的:Thrown when an application attempts to use null in a case where an object is required. These include:
  * Calling the instance method of a null object.
  * Accessing or modifying the field of a null object.
  * Taking the length of null as if it were an array.
  * Accessing or modifying the slots of null as if it were an array.
  * Throwing null as if it were a Throwable value.
  (1)据我自己的统计,在我的代码中,出现频率最多的类是String.class,因此我们就以String为例来看一下怎么避免在使用这个类的时候遇到NullPointerException。
  从JAVA的源代码来看,String这个类一共在两个地方就抛出了NullPointerException这个异常,一个是String的一个构造方法,一个是toLowerCase这个方法,所以在用到这两个方法的时候最好捕捉一下异常。
  (2)在jsp中经常会有一些form来提交表单给服务器,但是有时候表单项并没有填,那么在jsp程序对传上来的数据进行处理时,就会有异常出现。这时就要在使用这些数据前进行一次判断,如:
  (3)还有在使用JDBC的时候,ResultSet这个对象使用的时候也会经常有NullPointerException异常,一般来说ResultSet出现这个问题主要是sql不对的原因。
  (4)、另外就是创建数组时,java中创建对象不会自动分配内存,这与C语言有不同之处。如
  JButton []btnGroup=new JButton[20];
  for(int i=0;i<btnGroup.length();i++)
  btnGroup[i]=new JButton();
  这样的话就可以避免出现这类异常