下列程序的运行结果是( )。 public class test{ private Stri ng []data={"10","10.5"}; public void fun(){ double s =0; for (i nt i =0;i

admin2012-12-02  11

问题 下列程序的运行结果是(  )。
public class test{
private Stri ng []data={"10","10.5"};
public void fun(){
  double s =0;
  for (i nt i =0;i <3;i ++){
   try{
s =s +Integer .parseInt(data[i]);
   catch(Exception e){
   Syste m.out .pri nt("error1:"+data[i]);  

  }

public static void mai n(stri ng []args){
  try{
   test d =ne wtest();
   d .fun();
  }
catch (Exception e){
   Syste m.out .pri ntln("error2")
  }


选项 A、error1:10.5
B、error2
C、error1:10.5error2
D、以上都不对

答案C

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

随机试题
最新回复(0)