单选题 下列程序的执行结果是______。
public classExceptionTest{
public static void main(String [] args){
String[]data={"1","2.5"};
int sum=0;
for(int i=1;i<=2;i++){
try{
sum=sum+Integer.parseInt(data[i])
}catch(NumberFormatException f){
System.out.println("*");
)catch(Exception e){
System.out println("#");
}finally{
System.out.println("end");
}
}
}
【正确答案】 A
【答案解析】[解析] try...catch...finally...代码块的运行方式是:首先运行try{...}中的代码,如果没有发生任何异常,执行完毕try{...}中的代码后,执行finally{...}中的全部代码;如果执行try{...}中的代码时发生异常,在发生异常的语句处停止继续执行,进入catch{...}语句块,执行其中的全部代码,执行完毕后,接着执行finally{...}中的全部代码。也就是说,无论任何情况,都会执行finally{...}中的代码。首先,程序运行至Integer.parseInt(data[i])时会出NumberFormatException()异常,程序用try—catch捕获了这个异常,故而第一次for循环时会先输出“*”,然后输出“end”。接下来的程序也有异常,也是先运行catch{...}语句块,再运行finally{...}中的代码。