代码改变世界

可爱的人人

2010-02-20 11:32  jinze  阅读(261)  评论(0编辑  收藏  举报

人人真是可爱啊,他们的手机客户端软件出现了一个数组下标越界异常:

Arry Index Out Of Bounds

java/lang/ArrayIndexOutOfBoundsException n

8>=8

也即java.lang.ArrayIndexOutOfBoundsException ,在我的手机上出现过两次,一次n 5>=5,这一次是n 8>=8,

 

 

这个世界上不存在没有异常的软件,不过这样的异常是不是太有点那个了?说点什么呢,还是什么都不说了吧,让我们来看看程序:

我想这应该是程序中的一个for循环除了问题,问题出在程序初始化的阶段,也就是程序在检索数据库中的日志内容时出现了这个异常,我想这个异常如果细心一点的话是不会出现的。下面让我们来模拟一下这个异常:

创建一个新的类,不妨叫做ArrayTest,然后创建一个静态的方法:

public static void Test()

    {

       String[] str=new String[10];

       for(int index=0;index<=str.length;index++)

        {

           str[index]=""+java.lang.Math.random();//用随机数来给这个数组赋值。

           System.out.println(str);//打印出这个数组。

       }

      

    }主方法调用一下这个静态的方法:

public static void main(String[] args)

    {

       Test();

      

    }

接下来,就会产生这个异常:

 

要解决这个异常也有两种方法:

第一种,异常捕获:

public static void Test2()

    {

       try

       {

           String[] str=new String[10];

           for(int index=0;index<=str.length;index++)

           {

              str[index]=""+java.lang.Math.random();//用随机数来给这个数组赋值。

              System.out.println(str);//打印出这个数组。

           }

          

       }

       catch(Exception ex)

       {

           ex.printStackTrace();

       }

       System.out.println("Hello World");

    }

这里我们给出一个Test的替代方法,Test2.

第二种,这是一种(非常)简单的修改

public static void Test3()

    {

       String[] str=new String[10];

       for(int index=0;index<=str.length-1;index++)

       {

           str[index]=""+java.lang.Math.random();//用随机数来给这个数组力的成员赋值。

           System.out.println(str);//打印出这个数组。

       }

    }

好了,收工,另外我非常喜欢用人人,希望他们的软件可以越写越好。

转载自马金泽的cnblogs主页:http://www.cnblogs/MicroGoogle/.

 

用电子邮件联系Andy