选择题
12. f()方法定义如下所示,try中可以捕获三种类型的异常,如果在该方法运行中产生了一个IOException,那么,此时的输出结果是______。
public void f(){
try{
//method that may cause an Exception
}
catch(java.io.FileNotFoundException ex){
System.out.print("FileNotFoundException!");
}
catch(java.io.IOException ex){
System.out.print("IOException!");
}
catch(java.lang.Exception ex){
System.out.print("Exception!");
}
}
【正确答案】
A
【答案解析】 在Java语言中,通常是通过try/catch来处理异常的,当try块中的代码出现异常后,将会匹配catch块中的异常,一旦匹配成功,就会执行catch块的代码进行异常处理。
通常,可以有多个catch语句,也就是说,可以用来匹配多个异常,但是当每次执行的时候,最多只会匹配一个异常,每当匹配到其中一个异常后,仅会执行catch块中匹配上的那个异常,而其他的catch块将不会被执行。对于本题而言,如果抛出IOException异常后,FileNotFoundException不是IOException的父类,接着异常IOException匹配成功,进入异常处理块输出IOException,然后程序运行结束。所以,选项A正确。