Exceptions Trong C++

155 lượt xem Lập Trình C/C++
Exceptions Trong C++

C++ Exceptions

Khi thực thi mã C ++, các lỗi khác nhau có thể xảy ra: lỗi mã hóa do lập trình viên thực hiện, lỗi do nhập sai hoặc những điều không thể lường trước khác.

Khi xảy ra lỗi, C ++ thường sẽ dừng và tạo ra thông báo lỗi. Thuật ngữ kỹ thuật cho điều này là: C ++ sẽ ném một ngoại lệ (ném một lỗi).

C++ try and catch

Xử lý ngoại lệ trong C ++ bao gồm ba từ khóa:try, throw và catch:

Câu lệnh try cho phép bạn xác định một khối mã được kiểm tra lỗi trong khi nó đang được thực thi.

Từ khóa throw ném một ngoại lệ khi phát hiện sự cố, điều này cho phép chúng tôi tạo ra một lỗi tùy chỉnh.

Câu lệnh catch cho phép bạn xác định một khối mã sẽ được thực thi, nếu có lỗi xảy ra trong khối try.

Các từ khóa try và catch đi theo từng cặp:

Example

try {
  // Block of code to try
  throw exception; // Throw an exception when a problem arise
}
catch () {
  // Block of code to handle errors
}

Hãy xem xét ví dụ sau:

Example

try {
  int age = 15;
  if (age >= 18) {
    cout << "Access granted - you are old enough.";
  } else {
    throw (age);
  }
}
catch (int myNum) {
  cout << "Access denied - You must be at least 18 years old.\n";
  cout << "Age is: " << myNum;
}

Giải thích ví dụ

Chúng tôi sử dụng khối try để kiểm tra một số mã: Nếu biến age nhỏ hơn 18, chúng tôi sẽ throw một ngoại lệ và xử lý nó trong khối catch của chúng tôi.

Trong khối catch lỗi, chúng tôi bắt lỗi và làm điều gì đó với nó. Câu lệnh catch nhận một tham số: trong ví dụ của chúng tôi, chúng tôi sử dụng một biến int (myNum) (vì chúng tôi đang ném một ngoại lệ kiểu int trong khối try (age)), để xuất ra giá trị của age.

Nếu không có lỗi nào xảy ra (ví dụ: nếu age là 20 thay vì 15, nghĩa là lớn hơn 18), khối catch được bỏ qua:

Example

int age = 20;

Bạn cũng có thể sử dụng từ khóa throw để xuất ra một số tham chiếu, chẳng hạn như mã / mã lỗi tùy chỉnh cho mục đích tổ chức:

Example

try {
  int age = 15;
  if (age >= 18) {
    cout << "Access granted - you are old enough.";
  } else {
    throw 505;
  }
}
catch (int myNum) {
  cout << "Access denied - You must be at least 18 years old.\n";
  cout << "Error number: " << myNum;
}

Xử Lý Mọi Loại Ngoại Lệ (…)

Nếu bạn không biết kiểu throw được sử dụng trong khối try, bạn có thể sử dụng cú pháp “ba chấm” (…) bên trong khối catch, cú pháp này sẽ xử lý bất kỳ loại ngoại lệ nào:

Example

try {
  int age = 15;
  if (age >= 18) {
    cout << "Access granted - you are old enough.";
  } else {
    throw 505;
  }
}
catch (...) {
  cout << "Access denied - You must be at least 18 years old.\n";
}

 

Leave a Reply

Your email address will not be published. Required fields are marked *

PHP Code Snippets Powered By : XYZScripts.com
.
.
.
.