pengantar
Ini adalah kelas pengecualian standar. Semua objek yang dilempar oleh komponen pustaka standar diturunkan dari kelas ini. Oleh karena itu, semua pengecualian standar dapat ditangkap dengan menangkap jenis ini dengan referensi.
Pernyataan
Berikut adalah deklarasi untuk std :: exception.
class exception;
Contoh
Dalam contoh di bawah ini untuk 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();
}
}
Jenis turunan
Sr.No. |
Jenis turunan |
Definisi |
1 |
bad_alloc |
Pengecualian ini terjadi pada kegagalan mengalokasikan memori |
2 |
bad_cast |
Pengecualian ini terjadi pada kegagalan transmisi dinamis |
3 |
bad_exception |
Ini pengecualian yang dilontarkan oleh penangan tak terduga |
4 |
bad_function_call |
Pengecualian ini diberikan pada panggilan yang buruk |
5 |
bad_typeid |
Pengecualian ini diberikan pada typeid dari pointer null |
6 |
bad_weak_ptr |
Ini adalah penunjuk lemah yang buruk |
7 |
ios_base :: kegagalan |
Ini adalah kelas dasar untuk pengecualian aliran |
8 |
logic_error |
Ini adalah pengecualian kesalahan logika |
9 |
runtime_error |
Ini adalah pengecualian kesalahan waktu proses |
Jenis turunan (melalui logic_error)
Sr.No. |
Jenis turunan |
Definisi |
1 |
domain_error |
Ini adalah pengecualian kesalahan domain |
2 |
future_error |
Ini adalah pengecualian kesalahan di masa mendatang |
3 |
argumen yang tidak sah |
Ini adalah pengecualian argumen yang tidak valid |
4 |
length_error |
Ini adalah pengecualian kesalahan panjang |
5 |
diluar jangkauan |
Ini adalah pengecualian di luar jangkauan |
Jenis turunan (melalui runtime_error)
Sr.No. |
Jenis turunan |
Definisi |
1 |
overflow_error |
Ini adalah pengecualian kesalahan luapan |
2 |
range_error |
Ini adalah pengecualian kesalahan rentang |
3 |
sistem bermasalah |
Ini adalah pengecualian kesalahan sistem |
4 |
underflow_error |
Ini adalah pengecualian kesalahan aliran bawah |
Jenis turunan (melalui bad_alloc)
Sr.No. |
Jenis turunan |
Definisi |
1 |
bad_array_new_length |
Ini adalah pengecualian untuk panjang array yang buruk |
Jenis turunan (melalui system_error, sejak C ++ 11)
Sr.No. |
Jenis turunan |
Definisi |
1 |
ios_base :: kegagalan |
Ini adalah kelas dasar untuk pengecualian aliran |
Fungsi anggota
Sr.No. |
Jenis turunan |
Definisi |
1 |
(konstruktor) |
Ini adalah pengecualian konstruktor |
2 |
operator = |
Ini adalah pengecualian salinan |
3 |
apa |
Ini digunakan untuk mendapatkan pengecualian pengidentifikasi string |
4 |
(penghancur) |
Ini adalah pengecualian penghancuran |