実例で finally を使う
Finally ブロックは、例外の有無にかかわらず、データベースやファイルなど使用中のリソースをクローズして後始末するためによく使われます。
ここでは、ファイルを開き、テキストを書き込み、ファイルを閉じる一連の処理をメソッド呼び出しで模擬します。例外が発生するかどうかに関係なく、模擬ファイルを閉じるために finally を使います。
この演習はコースの一部です
Javaにおけるデータ型と例外処理
演習の手順
- ファイルを開いて書き込む処理を囲む try ブロックを開始します。
- 模擬ファイルのオープンやテキストの書き込み中に発生しうるあらゆる例外を捕捉します。
- 模擬ファイルを閉じる finally ブロックを追加します。これは、プログラムが問題なく実行された場合も、ファイルを開く/書き込む際に例外が発生した場合も必ず呼び出されます。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
public class FinallyCleanup {
public static void main(String[] args) {
String[] words = { "Lorem", "ipsum", "dolor", "sit", "amet" };
// Open a try block
____ {
open();
for (int i = 0; i <= words.length; i++) {
writeToFile(words[i]);
}
// Catch any possible exception
} ____ (____ ____) {
System.out.println("Problem writing words to file");
// Add a finally block to close the file
} ____ {
close();
}
}
public static void open() {
System.out.println("Our file is open");
}
public static void close() {
System.out.println("Our file is closed");
}
public static void writeToFile(String text) {
System.out.println(text + " has been written to the file");
}
}