Trang tài liệu
Khóa học C++ nền tảng
Chương 9. Xử lý ngoại lệ
Xử lý ngoại lệ trong C++

Xử lý ngoại lệ trong C++

Xử lý ngoại lệ là một phương pháp được sử dụng để khắc phục các lỗi thời gian chạy để có thể duy trì dòng chảy bình thường của chương trình. Trong C++, điều này được thực hiện bằng ba từ khóa: try, catch và throw.

Try { … }

Trong khối try, bạn viết mã code có khả năng tạo ngoại lệ. Nếu gặp phải ngoại lệ, quyền kiểm soát sẽ được chuyển đến khối catch có liên quan để xử lý sự cố.

Ví dụ:

try {
  // mã code có thể ném một ngoại lện
}

Catch (…) { … }

Khối catch theo sau khối try và chịu trách nhiệm xử lý các ngoại lệ do khối try đưa ra. Có thể có nhiều khối catch để xử lý các loại ngoại lệ khác nhau.

Ví dụ:

catch (int e) {
  //xử lý ngoại lệ kiểu int
}
catch (char e) {
  // /xử lý ngoại lệ kiểu char
}
catch (...) {
  // xử lý bất kỳ ngoại lệ nào khác
}

throw … ;

Trong trường hợp xảy ra lỗi trong khối try, bạn có thể sử dụng từ khóa throw để tạo ngoại lệ cho loại cụ thể. Điều này sau đó sẽ được catch và xử lý bởi khối bắt tương ứng.

Ví dụ:

try {
  int num1 = 10, num2 = 0;
  if (num2 == 0) {
    throw "Division by zero not allowed!";
  } else {
    int result = num1 / num2;
    cout << "Result: " << result << endl;
  }
}
catch (const char* e) {
  cout << "Error: " << e << endl;
}

Tóm lại, xử lý ngoại lệ trong C++ là một kỹ thuật để xử lý các lỗi thời gian chạy trong khi vẫn duy trì luồng bình thường của chương trình. Các từ khóa try, catch và throw được sử dụng cùng nhau để tạo cấu trúc xử lý các trường hợp ngoại lệ khi chúng xảy ra.