当前位置:编程学习 > JAVA >>

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

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,