package com.Test;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class IoTest {
public void IoTest(){
try{
int[] l={1,2,3};
for(int i=0;i<4;i++){
System.out.println(l[i]);
}
}catch(java.lang.ArrayIndexOutOfBoundsException ex){
System.out.println("数组越界");
}catch(Exception ex){
System.out.println("最外层异常");
}
}
public static void main(String[] args) {
IoTest io=new IoTest();
io.IoTest();
}
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class IoTest {
public void IoTest(){
try{
int[] l={1,2,3};
for(int i=0;i<4;i++){
System.out.println(l[i]);
}
}catch(java.lang.ArrayIndexOutOfBoundsException ex){
System.out.println("数组越界");
}catch(Exception ex){
System.out.println("最外层异常");
}
}
public static void main(String[] args) {
IoTest io=new IoTest();
io.IoTest();
}
}
//以上代码输出:1,2,3 数组越界,而并未执行最外层异常,
所以catch语句不能理解为 switch,case的case语句,只要case后面没有break;强制结束,将会顺着执行case后面的语句,
而catch并不是这样。只要其捕获到相应得异常,就不会往下进行,即使最后面一个是最大的异常。也不会被执行。