Thư viện C ++ - <ngoại lệ>

Giới thiệu

Nó là một lớp ngoại lệ tiêu chuẩn. Tất cả các đối tượng được ném bởi các thành phần của thư viện chuẩn đều có nguồn gốc từ lớp này. Do đó, tất cả các ngoại lệ tiêu chuẩn có thể được phát hiện bằng cách bắt loại này bằng cách tham chiếu.

Tờ khai

Sau đây là khai báo cho std :: exception.

class exception;

Thí dụ

Trong ví dụ dưới đây cho std :: exception.

#include <thread>
#include <vector>
#include <iostream>
#include <atomic>
 
std::atomic_flag lock = ATOMIC_FLAG_INIT;
 
void f(int n) {
   for (int cnt = 0; cnt < 100; ++cnt) {
      while (lock.test_and_set(std::memory_order_acquire))
         ;
      std::cout << "Output from thread " << n << '\n';
      lock.clear(std::memory_order_release);
   }
}
 
int main() {
   std::vector<std::thread> v;
   for (int n = 0; n < 10; ++n) {
      v.emplace_back(f, n);
   }
   for (auto& t : v) {
      t.join();
   }
}

Các loại có nguồn gốc

Sr.No. Các loại có nguồn gốc Định nghĩa
1 bad_alloc Ngoại lệ này xảy ra do không phân bổ bộ nhớ
2 bad_cast Ngoại lệ này xảy ra do không thể truyền động
3 bad_exception Đây là một ngoại lệ do trình xử lý không mong muốn
4 bad_ function_call Ngoại lệ này được đưa vào cuộc gọi xấu
5 bad_typeid Ngoại lệ này được đưa ra trên typeid của con trỏ null
6 bad_weak_ptr Nó là một con trỏ yếu kém
7 ios_base :: fail Nó là một lớp cơ sở cho các ngoại lệ luồng
số 8 logic_error Đó là một ngoại lệ lỗi logic
9 lỗi runtime Đó là một ngoại lệ lỗi thời gian chạy

Các loại có nguồn gốc (thông qua logic_error)

Sr.No. Các loại có nguồn gốc Định nghĩa
1 domain_error Đó là một ngoại lệ lỗi miền
2 future_error Đó là một ngoại lệ lỗi trong tương lai
3 đối số không hợp lệ Đó là một ngoại lệ đối số không hợp lệ
4 length_error Đó là một ngoại lệ lỗi độ dài
5 out_of_range Đó là một ngoại lệ ngoài phạm vi

Các loại có nguồn gốc (thông qua runtime_error)

Sr.No. Các loại có nguồn gốc Định nghĩa
1 lỗi tràn Đó là một ngoại lệ lỗi tràn
2 range_error Đó là một ngoại lệ lỗi phạm vi
3 lỗi hệ thống Đó là một ngoại lệ lỗi hệ thống
4 underflow_error Đó là một ngoại lệ lỗi dòng dưới

Các loại có nguồn gốc (thông qua bad_alloc)

Sr.No. Các loại có nguồn gốc Định nghĩa
1 bad_array_new_length Nó là một ngoại lệ về độ dài mảng xấu

Các kiểu có nguồn gốc (thông qua system_error, kể từ C ++ 11)

Sr.No. Các loại có nguồn gốc Định nghĩa
1 ios_base :: fail Nó là một lớp cơ sở cho các ngoại lệ luồng

Chức năng thành viên

Sr.No. Các loại có nguồn gốc Định nghĩa
1 (constructor) Nó là ngoại lệ của hàm tạo
2 toán tử = Nó là một ngoại lệ sao chép
3 Nó được sử dụng để lấy ngoại lệ xác định chuỗi
4 (máy hủy) Đó là một ngoại lệ tiêu diệt