面向对象集|每日一题:如果在该方法运行中产生了一个 IOException,将会输出什么结果?

320 阅读1分钟

getCustomerInfo() 方法如下,try 中可以捕获三种类型的异常,如果在该方法运行中产生了一个 IOException,将会输出什么结果?( )

public void getCustomerInfo() {
    try {
        // do something that may cause an Exception
    } catch (FileNotFoundException e) {
        System.out.print("FileNotFoundException!");
    } catch (IOException e) {
        System.out.print("IOException!");
    } catch (Exception e) {
        System.out.print("Exception!");
    }
}

A. FileNotFoundException!

B. IOException!

C. IOException!Exception!

D. FileNotFoundException!IOException!

解析: 本道题主要考察的是 Java 中多重 catch 块是如何捕获异常的问题。

在 Java 中,try-catch 是经典的异常捕获及处理组合,try 块中编写可能会出现异常的代码段,而在 catch 块中则编写如果出现了某种异常后的处理代码段。

为了能够捕获并分别处理不同类型的异常,多重 catch 块是必不可少的。它的执行流程与选择结构中的多重 if 类似,当 try 块中出现异常的时候,只要有一个 catch 块能够捕获当前 try 块中的异常,那么就会直接进行处理而不再执行后续其他的 catch 块了。

如本题题干中所述,如果在该方法运行中产生了一个 IOException,那么自上而下进行捕获,IOException 的 catch 块可以捕获该异常,后续其他的 catch 块就不再执行捕获了。

所以,最终的输出结果就是 IOException!