Exception main thread checker"main" java.lang.ArrayIndexOutOfBoundsException

java.lang.ArrayIndexOutOfBoundsException
1、错误描述
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at com.you.model.Args.main(Args.java:18)
2、错误原因
package com.you.
* @author YHD
public class Args
* @param args
public static void main(String[] args)
System.out.println(args[0]);
System.out.println(args[1]);
3、解决办法这是一个非常常见的异常,从名字上看是数组下标越界错误,解决方法就是查看为什么下标越界。
下面是一个错误示例:&
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2&at test4.State.nextStates(State.java:93)&at test4.State.main(State.java:478)
从这些提示信息中可以获取如下信息:
1、错误发生在93行
2、发生错误的时候,下标的值为2
接下来分析为什么下标值为什么是2就可以解决了。
自己的理解:
& 这其实就是 数组越界了的问题
java中的数组分配是从0到它的length-1的空间,
int []a={1,2,3,4,5};
它分配了5个空间,这样定义跟这样
int [5]a={1,2,3,4,5}
是一样的,但你不能调用a[5],只能调用到a[4]
结果:a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[4]=5,
但是使用:a[5]=数组越界
阅读(...) 评论()Java常见异常和错误_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Java常见异常和错误
&&java,cuowu,错误,常用
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢赞助商链接
运行程序:public class Transform {
public static void main(String [] args)
System.out.println("选择大地基准面:1.WGS84;2.北京1954;3.西安1980");
int c = Integer.parseInt(args[0]);
case 1 : System.out.println("WGS84");
case 2 : System.out.println("北京1954");
case 3 : System.out.println("西安1980");
default : System.out.println("错误,重新选择!");
}} 后报错Exception in thread main java.lang.ArrayIndexOutOfBoundsException:0 at Transform.main&Transform.java&为什么?请高手指点
这个程序 主要问题是因为如果你没有args赋值的话 args[0] 就不存在。 当然会抛Exception in thread main java.lang.ArrayIndexOutOfBoundsException:0 at Transform.main&Transform.java&意思是 数组下标越界..所以你需要在运行的时候 给args[] 赋值javac Transform.javajava Transform 1在命令行上在java Transform 后面跟上一个数字如果想增加程序的健壮性,最好对args[0]的值在赋值之前就是否为数字进行判断否则手一哆嗦就会抛 NumberFormatException(数字类型异常)或则使用变通的方法public class Transform {public static void main(String [] args){ System.out.println("选择大地基准面:1.WGS84;2.北京1954;3.西安1980"); char c1 = args[0].charAt(0);
switch(c1) {
case '1' : System.out.println("WGS84");
case '2' : System.out.println("北京1954");
case '3' : System.out.println("西安1980");
default : System.out.println("错误,重新选择!"); }}}
赞助商链接
赞助商链接
最佳分辨率
OpenSource
Code & 2002-20请教这个 java.lang.ArrayIndexOutOfBoundsException: 0 异常 - ITeye问答
代码如下:
public class Test {
public static void main(String[] args) {
final int num2 = Integer.parseInt(args[0]);
编译时,会报
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at test.Test.main(Test.java:7)
问题补充:其实各位回答的都不错,可是我只能选一个,确实不是编译时出错,是运行时报的错。
我有点思维定式了,我以为在用args参数的时候会在运行时等待输入!!
⊙﹏⊙b汗~
采纳的答案
引用编译时,会报
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at test.Test.main(Test.java:7)
首先说明:我在JDK1.6中编译时没问题的。
其次: 从你的堆栈可以看出,这是在运行时报的错。
最终的结论是: 运行时忘了加命令时参数了
应该这样运行:java& test.Test& 参数
这个args是在java Test 命令后面加的
必须提供了args才能够取的 否则为一个空的字符串数组
如果在Eclipse中的话请在(Open Run Dialog)代开的对话框中
对Test类运行的 Arguments参数填值& 用空格隔开
哥,你挺厉害的,你的输入参数啊,你用了主方法的参数,运行的时候是需要输入参数的。
呵呵,那肯定要报这错误的。因为你还未输入数据,所以args数组中还没值,你现在取它的第一值,那肯定是数组越界异常。
先判断:if(args.length!=0)
已解决问题
未解决问题

我要回帖

更多关于 java.lang.thread.run 的文章

 

随机推荐