Java异常处理
import java.io.*;
public class TestException{
public static void main(String arg[])
{
int i=0;
String s[]={
"Hello World",
"Hello World",
"Hello World"
};
while(i<5)
try{
System.out.println(s[i]);
i++;
}
catch(ArrayIndexOutOfBoundsException e){
System.out.println("数组越界");
}
}
}
//为什么会进入死循环
答案:你的代码贴的不完整,不是 while(i<5) try{ 而是while(i<5) { try{ 吧。
这样的代码肯定是死循环的,在i的值是3的时候s[i]就会报异常,被捕获不会再进行下一步的 i++,捕获后再判断 while(i<5) 现在i 还是3当然继续循环到打印语句时又是异常,于是乎,死循环就这么诞生了
其他:走到catch里输出后又跳回while里了,这时候没有走i++;所以i一直是3,就一直循环了 上面两位说的很正确,你改为如下代码就好了
int i=0;
String s[]={
"Hello World",
"Hello World",
"Hello World"
};
try{
while(i<5){
System.out.println(s[i]);
i++;
}
}
catch(ArrayIndexOutOfBoundsException e){
System.out.println("数组越界");
} 你的代码写法实在是太不规范了:
import java.io.*;
public class TestException{
public static void main(String arg[]) {
int i=0;
String s[]={
"Hello World",
"Hello World",
"Hello World"
};
try {
while(i<5) {
System.out.println(s[i]);
i++;
}
} catch (ArrayIndexOutOfBoundsException e){
System.out.println("数组越界");
}
}
} 很简单,在catch块中输出“数组越界”后,加一条语句
return;
就可以了 public static void main(String args[])
{
int i=0;
String s[]=
{
"Hello World",
"Hello World",
"Hello World"
};
while(i<5)
{
try{
System.out.println(s[i]);
i++;
}catch(ArrayIndexOutOfBoundsException e)
{
e.printStackTrace();
System.out.println("数组越界");
break;
}
}
}
eclipse编译通过 没有死循环 忘记写break语句了 希望能帮到你
上一个:java application 中与 servlet/jsp 采用什么方式通讯
下一个:国威电子S858怎么下载JAVA