การใช้ finally ในตัวอย่างจริง
โดยทั่วไป finally block จะใช้เพื่อปิดและจัดการทรัพยากร เช่น ฐานข้อมูลหรือไฟล์ที่กำลังใช้งานอยู่ ไม่ว่าโปรแกรมจะทำงานตามปกติหรือเกิด exception ขึ้นก็ตาม
ในแบบฝึกหัดนี้ คุณจะจำลองการเปิดไฟล์ เขียนข้อความลงในไฟล์ และปิดไฟล์ ผ่านการเรียกใช้เมธอด โดยใช้ finally เพื่อปิดไฟล์จำลองเสมอ ไม่ว่าจะเกิด exception หรือไม่ก็ตาม
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java
คำแนะนำการฝึกหัด
- เริ่มต้น try block เพื่อครอบคลุมโค้ดที่เปิดไฟล์และเขียนข้อมูลลงในไฟล์
- ดักจับ exception ทุกประเภท ที่อาจเกิดขึ้นระหว่างการเปิดไฟล์จำลองและการเขียนข้อความ
- เพิ่ม finally block เพื่อปิดไฟล์จำลอง ซึ่งจะถูกเรียกใช้เสมอไม่ว่าโปรแกรมจะทำงานได้ปกติ หรือเกิด exception ขึ้นขณะเปิดไฟล์หรือเขียนข้อมูล
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
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");
}
}