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 |
gì |
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 |