下列程序的运行结果是()。public class test{private String[]data={¨10" "10.5&quot

计算机 程序, 已帮助 人

下列程序的运行结果是()。

public class test{

private String[]data={¨10","10.5");

public void fun{

double s=0:

for(int i=0;i<3;j++){

try{

s=s+Integer.parseInt(data[i]);

catch(Exception e){

System.out.print("errorl:"+data[i]);

}

}

}

public static void main(string[]args){

try{

test d=new test:

fun:

}catch(Exception e){

System.OUt.println("error2")

}

}

}

A.errorl:10.5

B.error2

C.errorl:10.5 error2

D.以上都不对

请帮忙给出正确答案和分析,谢谢!

热搜:恶意代码通常是一段可运行的程序

答案解析

难度★★☆ 搜索
  • 正确答案:C

    C。【解析】try-catch块是可以嵌套分层的,并且通过异常对象的数据类型来进行匹配,以找到正确的catchblock异常错误处理代码。以下是通过异常对象的数据类型来进行匹配找到正确的catch block的过程。①首先在抛出异常的try-catch块中查找catch block, 按顺序先与第一个catch block块匹配,如果抛出的异常对象的数据类型与catch block中传入的异常对象的临时变量(就是catch语句后面参数)的数据类型完全相同,或是它的 子类型对象,则匹配成功,进入到catch block中执行,否则到第2步;②如果有两个或更多的catch block,则继续查找匹配第二个、第三个,直至最后一个catch block,如匹配成功,则进入到对应的catch block中执行,否则到第3步;③返回到上一级的try-catch块中,按规则继续查找对应的catch block。如果找到,进入到对应的catch block中执行,否则到第4步;④再到上上级的try-catch块中,如此不断递归,直到匹配到顶级的try-catch块中的最后一个catch block,如果找到,进入到对应的catch block中执行;否则程序将会执行terminate退出。所以本题选C。