Menu
CoddyTech

Khối lệnh try-catch

Bài học 17 trên 23 trong khóa học Xử lý tệp trong C++ của Coddy.

Khối try được tạo bằng từ khóa try, theo sau là dấu ngoặc nhọn. Ta dùng khối try để chứa các câu lệnh có thể gây ra ngoại lệ và khiến chương trình không hoạt động bình thường.


Khi mở tệp để đọc hoặc ghi, có nhiều vấn đề có thể xảy ra, chẳng hạn như tệp không tồn tại, thiếu quyền truy cập hoặc hết dung lượng đĩa. Bằng cách đặt các thao tác với tệp bên trong khối try, bạn có thể dự đoán những vấn đề này và chuẩn bị để chương trình xử lý chúng hiệu quả.

string error_message = "File can't be found"
ifstream file;
try {
	file.open("example.txt");
	if(!file.is_open())
		throw s;
	}

Trong chương trình này, nếu tệp không tồn tại, chương trình sẽ thử mở tệp nhưng không thành công. Khi đó, thông báo File can't be found will be thrown


Khối catch dùng để xác định cách chương trình phản hồi khi một ngoại lệ được ném ra bên trong khối try tương ứng. Trong xử lý tệp, điều này rất quan trọng để ứng dụng luôn ổn định và đáng tin cậy.

string error_message = "File not found"
ifstream file;
try {
	file.open("example.txt");
	if(!file.is_open())
		throw error_message;
} catch(string msg) {
	cerr << msg << endl;
Output:
File not found

 Khối catch này nhận thông báo lỗi và in thông báo ra, giúp chương trình xử lý lỗi.

Bằng cách này, mọi lỗi đều có thể được xử lý

challenge icon

Thử thách

Dễ

Thử mở 3 tệp

  • code.txt
  • messages.txt
  • python.txt

Nếu có thể mở các tệp theo thứ tự đó, hãy ném thông báo “error message” File opened successfully, nếu không, hãy ném thông báo lỗi Unable to open file, sau đó bạn sẽ bắt ngoại lệ và in ra.

Tự làm thử

#include <iostream>
#include <fstream>

using namespace std;

int main() 
{
    
    // Viết code của bạn ở đây
    
    return 0;
}

Tất cả bài học trong Xử lý tệp trong C++

Tự luyện tập: Trình biên dịch C++ online