Hướng dẫn C ++

C ++ TRANG CHỦ Giới thiệu C ++ C ++ Bắt đầu Cú pháp C ++ Đầu ra C ++ Nhận xét C ++ Biến C ++ Đầu vào của người dùng C ++ Các kiểu dữ liệu C ++ Toán tử C ++ Chuỗi C ++ Toán C ++ C ++ Boolean Điều kiện C ++ Chuyển đổi C ++ Vòng lặp trong khi C ++ C ++ cho vòng lặp C ++ Ngắt / Tiếp tục Mảng C ++ Tài liệu tham khảo C ++ Con trỏ C ++

Các hàm trong C ++

Các hàm trong C ++ Tham số hàm trong C ++ Nạp chồng hàm trong C ++

Các lớp C ++

C ++ OOP Các lớp / đối tượng C ++ Phương thức lớp C ++ Trình tạo C ++ Bộ chỉ định quyền truy cập C ++ Đóng gói C ++ Kế thừa C ++ Tính đa hình của C ++ Tệp C ++ Ngoại lệ C ++

C ++ Làm thế nào để

Thêm hai số

Ví dụ về C ++

Ví dụ về C ++ Trình biên dịch C ++ Bài tập C ++ C ++ Quiz


Ngoại lệ C ++


Ngoại lệ C ++

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 ++ thử và nắm bắt

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

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

Từ throwkhóa ném ra một ngoại lệ khi một vấn đề được phát hiện, điều này cho phép chúng tôi tạo ra một lỗi tùy chỉnh.

Câu catchlệnh 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.

Từ khóa trycatchtừ khóa đi theo cặp:

Thí dụ

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:

Thí dụ

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 trykhối để kiểm tra một số mã: Nếu agebiến nhỏ hơn 18, chúng tôi sẽ throwngoại lệ và xử lý nó trong catchkhối của chúng tôi.

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

Nếu không có lỗi xảy ra (ví dụ: if age20thay vì 15, nghĩa là nó sẽ lớn hơn 18), catchkhối sẽ bị bỏ qua:

Thí dụ

int age = 20;

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

Thí dụ

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 throw kiểu được sử dụng trong trykhối, bạn có thể sử dụng cú pháp "ba chấm" ( ...) bên trong catchkhối, cú pháp này sẽ xử lý bất kỳ loại ngoại lệ nào:

Thí dụ

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";
}