Khi thực thi mã C++, các lỗi khác nhau có thể xảy ra như lỗi mã do lập trình viên viết sai, lỗi do người dùng nhập sai hoặc nhiều trường hợp không lường trước được khác.
try, catch
Xử lý lỗi (exception, error) trong C++ bao gồm ba từ khóa try
, throw
và catch
:
try
: cho phép chúng ta xác định một khối mã sẽ được kiểm tra lỗi trong khi nó đang được thực thithrow
(ném, phát ra): sẽ phát ra một tín hiệu khi phát hiện lỗicatch
(bắt): cho phép chúng xác định một khối mã sẽ được thực thi, nếu có lỗi xảy ra trong khối mãtry
.
Ví dụ
#include <iostream>
using namespace std;
int main() {
try {
int tuoi;
cout << "Nhap tuoi cua ban:";
cin >> tuoi;
if (tuoi >= 18) {
cout << "Ban da duoc phep truy cap";
}
else {
throw tuoi;
}
}
catch (int tuoiCatch) {
cout << "Khong duoc truy cap - Ban phai tren 18 tuoi\n";
cout << "Tuoi cua ban: " << tuoiCatch << " tuoi";
}
return 0;
}
Nếu các em nhập một số nhỏ hơn 18 (ví dụ 10), thì kết quả sẽ là
Khong duoc truy cap - Ban phai tren 18 tuoi Tuoi cua ban: 10
Dòng 14 các em throw
một biến kiểu gì, thì dòng 18 các em cũng cần phải truyền vào biến kiểu tương tự cho khối catch
...
Nếu các em không biết kiểu dữ liệu khi throw
được sử dụng trong khối try
, các em có thể sử dụng cú pháp "ba chấm" (...
) bên trong khối catch
#include <iostream>
using namespace std;
int main() {
try {
int tuoi;
cout << "Nhap tuoi cua ban:";
cin >> tuoi;
if (tuoi >= 18) {
cout << "Ban da duoc phep truy cap";
}
else {
throw tuoi;
}
}
catch (...) {
cout << "Khong duoc truy cap - Ban phai tren 18 tuoi\n";
}
return 0;
}