Một trong những lợi thế của C ++ so với C là Xử lý ngoại lệ. Các ngoại lệ là sự bất thường trong thời gian chạy hoặc các điều kiện bất thường mà chương trình gặp phải trong quá trình thực thi. Có hai loại ngoại lệ:
Ví dụ: nằm ngoài chương trình Điều khiển, chương trình Lỗi đĩa, v.v.. C ++ cung cấp các từ khóa chuyên ngành sau cho mục đích này.
Sau đây là một ví dụ đơn giản để hiển thị xử lý ngoại lệ trong C ++. Đầu ra của chương trình giải thích luồng thực thi của các khối try-catch:
#include <iostream>
using namespace std;
int main()
{
int x = -1;
// Some code
cout << "Before try \n";
try {
cout << "Inside try \n";
if (x < 0)
{
throw x;
cout << "After throw (Never executed) \n";
}
}
catch (int x ) {
cout << "Exception Caught \n";
}
cout << "After catch (Will be executed) \n";
return 0;
}
Output:
Before try
Inside try
Exception Caught
After catch (Will be executed)
Có một khối đánh bắt đặc biệt gọi là ‘bắt tất cả’ các bẫy bắt (…) để bắt tất cả các loại ngoại lệ.
Ví dụ, trong chương trình sau, một int được ném như một ngoại lệ, nhưng không có khối bắt cho int, vì vậy khối Catch (…) sẽ được thực thi.
#include <iostream>
using namespace std;
int main()
{
try {
throw 10;
}
catch (char *excp) {
cout << "Caught " << excp;
}
catch (...) {
cout << "Default Exception\n";
}
return 0;
}
Output:
Default Exception
Chuyển đổi kiểu ngầm định không xảy ra đối với các kiểu nguyên thủy. Ví dụ, trong chương trình sau đây, một tên lửa không được chuyển đổi hoàn toàn thành int
#include <iostream>
using namespace std;
int main()
{
try {
throw 'a';
}
catch (int x) {
cout << "Caught " << x;
}
catch (...) {
cout << "Default Exception\n";
}
return 0;
}
Output:
Default Exception
Try-catch là một những xử lý vô cùng quan trọng trong C++, giúp chương trình hay project của bạn có thể tránh được những lỗi không cần thiết xử lý. Nếu xử dụng thành thạo try-catch nó sẽ giúp ích rất nhiều cho bạn trong quá trình làm việc trong các dự án lớn. Chúc các bạn thành công!
Nguồn: jobs.hybrid-technologies