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 |