Bibliothèque C ++ - <exception>

introduction

C'est une classe d'exception standard. Tous les objets lancés par les composants de la bibliothèque standard sont dérivés de cette classe. Par conséquent, toutes les exceptions standard peuvent être interceptées en capturant ce type par référence.

Déclaration

Voici la déclaration pour std :: exception.

class exception;

Exemple

Dans l'exemple ci-dessous pour 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();
   }
}

Types dérivés

N ° Sr. Types dérivés Définition
1 bad_alloc Cette exception levée en cas d'échec d'allocation de mémoire
2 bad_cast Cette exception levée en cas d'échec de la diffusion dynamique
3 mauvaise_exception C'est une exception levée par un gestionnaire inattendu
4 bad_function_call Cette exception lancée en cas de mauvais appel
5 bad_typeid Cette exception levée sur typeid du pointeur nul
6 bad_weak_ptr C'est un mauvais pointeur faible
sept ios_base :: échec C'est une classe de base pour les exceptions de flux
8 erreur_logique C'est une exception d'erreur logique
9 erreur d'exécution Il s'agit d'une exception d'erreur d'exécution

Types dérivés (via logic_error)

N ° Sr. Types dérivés Définition
1 domain_error C'est une exception d'erreur de domaine
2 future_error C'est une future exception d'erreur
3 argument invalide C'est une exception d'argument non valide
4 length_error C'est une exception d'erreur de longueur
5 out_of_range C'est une exception hors de portée

Types dérivés (via runtime_error)

N ° Sr. Types dérivés Définition
1 overflow_error C'est une exception d'erreur de débordement
2 range_error C'est une exception d'erreur de plage
3 erreur système C'est une exception d'erreur système
4 underflow_error C'est une exception d'erreur de sous-dépassement

Types dérivés (via bad_alloc)

N ° Sr. Types dérivés Définition
1 bad_array_new_length C'est une exception en cas de mauvaise longueur de tableau

Types dérivés (via erreur_système, depuis C ++ 11)

N ° Sr. Types dérivés Définition
1 ios_base :: échec C'est une classe de base pour les exceptions de flux

Fonctions des membres

N ° Sr. Types dérivés Définition
1 (constructeur) C'est une exception de constructeur
2 opérateur = C'est une exception de copie
3 quoi Il est utilisé pour obtenir une exception d'identification de chaîne
4 (destructeur) C'est une exception de destruction