zoukankan      html  css  js  c++  java
  • Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
     at ExTestDrive.main(ExTestDrive.java:14):

    程序代码如下:

     1 class MyEx extends Exception{}
     2 
     3 public class ExTestDrive {
     4 
     5     
     6     public static void main(String[] args) {  
     7         // TODO Auto-generated method stub
     8          String test=args[0];
     9     try{
    10         System.out.println("t");
    11         doRisky(test);
    12         System.out.println("o");   //如果没有异常,才会执行下面这一句,如果捕获异常,下面这一句直接跳过去了。
    13     }catch(MyEx e){
    14         System.out.print("a");
    15         
    16     }finally{
    17         System.out.println("w");
    18         
    19         }
    20         System.out.println("s");
    21     
    22     }
    23 
    24      static void doRisky(String t) throws MyEx {
    25          
    26          System.out.println("h");
    27          if("yes".equals(t)){   //看来t中会存储main函数传送给它的两个值:yes or not.或许是控制台中传递的参数
    28              throw new MyEx();
    29              
    30          }
    31          System.out.print("r");
    32         // TODO Auto-generated method stub
    33         
    34     }
    35 
    36 }
    1 你好,这个异常是初学者比较常见的异常。
    2 ArrayIndexOutOfBoundsException:注意这个单词,字面意思就是数组引用超出界限,也就是我们常说的越界问题。
    3 
    4 比如,我们创建了一个数组 int a[] = new int[4] ;
    5 那么数组a只能存放四个元素,而数组的下标是从0开始的,也就是说,a[3]就是最后一个元素。当你给a[4]赋值,或者使用a[4]的时候,就出现了ArrayIndexOutOfBoundsException异常。 
    
    1 你的args[]定义的是String数组 只给args[]数组声明 没给它分配空间 所以运行后出现的错误的意思是下标越界,代码如下:、
    2 public class b {
    3 public static void main(String args[]){
    4  args=new String[3];
    5  System.out.println("hi!"+args[0]+" "+args[1]+" " +args[2]);
    6  
    7 }
    8 }
    9 加args=new String[3];是个它分配空间你有args[0],args[1],args[2]三个所以是String[3],还可以给这数组赋值,如args[0]=new String("java")

    添加了一句话:args=new String[3],为这个数组分配了空间。

     1 class MyEx extends Exception{}
     2 
     3 public class ExTestDrive {
     4 
     5     
     6     public static void main(String[] args) {  
     7         // TODO Auto-generated method stub
     8          args=new String[3];
     9          String test=args[0];
    10     try{
    11         System.out.print("t");
    12         doRisky(test);
    13         System.out.print("o");   //如果没有异常,才会执行下面这一句,如果捕获异常,下面这一句直接跳过去了。
    14     }catch(MyEx e){
    15         System.out.print("a");
    16         
    17     }finally{
    18         System.out.print("w");
    19         
    20         }
    21         System.out.print("s");
    22     
    23     }
    24 
    25      static void doRisky(String t) throws MyEx {
    26          
    27          System.out.print("h");
    28          if("yes".equals(t)){   //看来t中会存储main函数传送给它的两个值:yes or not.或许是控制台中传递的参数
    29              throw new MyEx();
    30              
    31          }
    32          System.out.print("r");
    33         // TODO Auto-generated method stub
    34         
    35     }


    运行结果就出来了:

    throws。

    说明控制台Console发送过来的消息是no.就是没有抛出异常。

  • 相关阅读:
    进程池Pool
    进程间通信-Queue
    多任务版udp聊天器
    列表循环放引用并写出打印结果
    协程实现tcp两个客户端的通讯
    正则匹配身份证和邮箱
    python中上双互斥锁的线程执行流程
    小巧的http live streaming m3u8播放器
    js实现@提到好友
    mongoose多级嵌套操作
  • 原文地址:https://www.cnblogs.com/meihao1989/p/3179560.html
Copyright © 2011-2022 走看看