0
public void writeList() {
    PrintWriter out = null;

    try {
        System.out.println("Entering" + " try statement");

        out = new PrintWriter(new FileWriter("OutFile.txt"));
        for (int i = 0; i < SIZE; i++) {
            out.println("Value at: " + i + " = " + list.get(i));
        }
    } catch (IndexOutOfBoundsException e) {
        System.err.println("Caught IndexOutOfBoundsException: "
                           +  e.getMessage());

    } catch (IOException e) {
        System.err.println("Caught IOException: " +  e.getMessage());

    } finally {
        if (out != null) {
            System.out.println("Closing PrintWriter");
            out.close();
        } 
        else {
            System.out.println("PrintWriter not open");
        }
    }
}

このメソッドの try ブロックには、3 つの異なる終了の可能性があります。ここにそれらの2つがあります。

1) try ステートメントのコードが失敗し、例外がスローされます。これは、新しい FileWriter ステートメントが原因で発生した IOException、または for ループ内の間違ったインデックス値が原因で発生した IndexOutOfBoundsException である可能性があります。

2) すべてが成功し、try ステートメントは正常に終了します。

ここで言及されていないが、発生する可能性のある3番目の可能性は何ですか?

4

1 に答える 1

0

例外は、スタック内の次のメソッドに伝播できます

于 2016-01-28T03:55:45.047 に答える