Library C ++ - <exception>

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