Bắt đầu ngayBắt đầu miễn phí

Dùng finally trong ví dụ thực tế

Các khối finally thường được dùng để đóng và dọn dẹp tài nguyên như cơ sở dữ liệu hoặc tệp đang được sử dụng — bất kể luồng chạy bình thường hay có ngoại lệ xảy ra.

Tại đây, bạn sẽ mô phỏng việc mở một tệp, ghi văn bản vào tệp, cũng như đóng tệp — tất cả thông qua các lời gọi phương thức. Bạn sẽ dùng finally để đóng tệp mô phỏng bất kể có ngoại lệ xảy ra hay không.

Bài tập này là một phần của khóa học

Kiểu dữ liệu và Exceptions trong Java

Xem khóa học

Hướng dẫn bài tập

  • Bắt đầu một khối try bao quanh phần công việc mở tệp và ghi vào tệp
  • Bắt mọi ngoại lệ có thể xảy ra trong quá trình mở tệp mô phỏng và ghi văn bản vào đó.
  • Thêm một khối finally để đóng tệp mô phỏng; khối này sẽ được gọi cả khi chương trình chạy bình thường lẫn khi có ngoại lệ xảy ra lúc mở hoặc ghi tệp.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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");
	}
}
Chỉnh sửa và Chạy Mã