CUBは子供の白熊

Java SE 8 実践プログラミングの練習問題を解く

第9章 Java 7 の機能を復習する : 問題 3 : 複数例外のキャッチ

問題

複数の例外をキャッチするcatch節の中でその例外を再度スローする場合に、その処理が書かれているメソッドでのthrows宣言はどのように宣言すればよいか?
次の例で答えよ。

public void process() throws ??? {
    try {
        ...
    } catch (FileNotFoundException | UnknownHostException ex) {
        logger.log(Level.SEVERE, "...", ex);
        throw ex;
    }
}

解答

普通に、2つの例外をthrows宣言に書けばよい。

■ 普通の解答

public void process() throws FileNotFoundException, UnknownHostException {

あと、FileNotFoundExceptionUnknownHostExceptionIOExceptionの派生クラスなので、IOExceptionでまとめることも可。

■ ひとつにまとめる

public void process() throws IOException {