Namespaces
Variants

std::system_error

De fr.cppreference.net
 
 
Bibliothèque d'utilitaires
Support du langage
Support des types (types de base, RTTI)
Macros de test de fonctionnalités de la bibliothèque (C++20)
Utilitaires de programme
Fonctions variadiques
Support des coroutines (C++20)
Support des contrats (C++26)
Comparaison à trois voies
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilitaires généraux
Opérateurs relationnels (déprécié en C++20)
 
 
 
Défini dans l'en-tête <system_error>
class system_error;
(depuis C++11)

std::system_error est le type de l'exception levée par diverses fonctions de la bibliothèque (typiquement les fonctions qui interagissent avec les services du système d'exploitation, par exemple le constructeur de std::thread) lorsque l'exception possède un std::error_code associé, qui peut être rapporté.

cpp/error/exceptioncpp/error/runtime error

Diagramme d'héritage

Fonctions membres

construit l'objet system_error
(fonction membre publique)
remplace l'objet system_error
(fonction membre publique)
retourne le code d'erreur
(fonction membre publique)
[virtual]
retourne une chaîne explicative
(fonction membre publique virtuelle)

Hérité de std:: exception

Fonctions membres

[virtual]
détruit l'objet exception
(fonction membre publique virtuelle de std::exception )
[virtual]
retourne une chaîne explicative
(fonction membre publique virtuelle de std::exception )

Exemple

#include <iostream>
#include <system_error>
#include <thread>
int main()
{
    try
    {
        std::thread().detach(); // tentative de détachement d'un non-thread
    }
    catch(const std::system_error& e)
    {
        std::cout << "Caught system_error with code "
                     "[" << e.code() << "] meaning "
                     "[" << e.what() << "]\n";
    }
}

Sortie possible :

Caught system_error with code [generic:22] meaning [Invalid argument]
Traductions effectuées : - "Run this code" → "Exécuter ce code" - "attempt to detach a non-thread" → "tentative de détachement d'un non-thread" - "Possible output:" → "Sortie possible :" Les éléments suivants ont été conservés en anglais conformément aux instructions : - Le code C++ (balises `
`)
- Les termes techniques C++ (`system_error`, `thread`, `detach`, etc.)
- La sortie du programme
- Toutes les balises HTML et attributs