小问题

silicon_crystal 2003-04-06 02:20:14
以下是代码。
请问输出结果将回怎么样,为什么?
class test{
static int myArray[]={0,1,2,3,4};
public static void main(String[] a){
try{
bob();
}
catch(Exception e){
System.out.println("caught exception in main()");
e.printStackTrace();
}
}
static void bob()
{
try {
myArray[-1]=4;
}
catch(NullPointerException e){
System.out.println("caught a differentexception");
}
}
}

我就不明白他的结果是输出那个,请高手教教
...全文
26 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
silicon_crystal 2003-04-07
  • 打赏
  • 举报
回复
给分了。
silicon_crystal 2003-04-07
  • 打赏
  • 举报
回复
谢谢一句话惊醒梦中人,我知道了。bob的捕获异常没有匹配。谢谢。
我自己糊涂了。
cowboy1114 2003-04-07
  • 打赏
  • 举报
回复
其实nbm0(www.西伯利亚.com.cn)说的是对的:
当程序运行到myArray[-1]时,由于对数组访问越界,所以系统会自动抛出 java.lang.ArrayIndexOutOfBoundsException,由于在bob()中未对其进行捕捉,所以会继续向上抛出,Exception是所有异常的父类,因此会在main()中被捕捉,运行如下代码:
System.out.println("caught exception in main()");
e.printStackTrace();


silicon_crystal 2003-04-06
  • 打赏
  • 举报
回复
拜托这个和tomcat没有关系的。难道没有人真的能帮助我回答这个问题。
还是这里没有人静下心来看?
nbm0 2003-04-06
  • 打赏
  • 举报
回复
myArray[-1]=4;
java.lang.ArrayIndexOutOfBoundsException: -1


上面这个Exeption并没有在bob()中被捕获,所以一层层往上抛,在main()中也没有捕获,最后抛给了tomcat,输出java.lang.ArrayIndexOutOfBoundsException;

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧