std::system_error::system_error
De fr.cppreference.net
system_error( std::error_code ec );
|
(1) | (depuis C++11) |
system_error( std::error_code ec, const std::string& what_arg );
|
(2) | (depuis C++11) |
system_error( std::error_code ec, const char* what_arg );
|
(2) | (depuis C++11) |
system_error( int ev, const std::error_category& ecat );
|
(3) | (depuis C++11) |
system_error( int ev, const std::error_category& ecat,
const std::string& what_arg );
|
(4) | (depuis C++11) |
system_error( int ev, const std::error_category& ecat,
const char* what_arg );
|
(4) | (depuis C++11) |
system_error( const system_error& other ) noexcept;
|
(5) | (depuis C++11) |
Construit un nouvel objet system_error.
1) Construit avec le code d'erreur
ec.2) Construit avec le code d'erreur
ec et la chaîne explicative what_arg. La chaîne retournée par what() est garantie de contenir what_arg comme sous-chaîne.3) Construit avec le code d'erreur sous-jacent
ev et la catégorie d'erreur associée ecat.4) Construit avec le code d'erreur sous-jacent
ev, la catégorie d'erreur associée ecat et la chaîne explicative what_arg. La chaîne retournée par what() est garantie de contenir what_arg comme sous-chaîne (en supposant qu'elle ne contient pas de caractère nul incorporé).5) Constructeur de copie. Initialise le contenu avec celui de
other. Si *this et other ont tous deux le type dynamique std::system_error alors std::strcmp(what(), other.what()) == 0.Paramètres
| ec | - | code d'erreur |
| ev | - | code d'erreur sous-jacent dans l'énumération associée à ecat |
| ecat | - | catégorie d'erreur |
| what_arg | - | chaîne explicative |
| other | - |
autre
system_error
à copier
|
Exemple
Montre comment créer une exception
system_error
à partir d'une valeur
errno
.
Exécuter ce code
#include <iostream> #include <system_error> int main() { try { throw std::system_error(EDOM, std::generic_category(), "FIX ME"); } catch (const std::system_error& ex) { std::cout << "code: [" << ex.code() << "]\n" "message: [" << ex.code().message() << "]\n" "what: [" << ex.what() << "]\n"; } }
Sortie possible :
code: [generic:33] message: [Numerical argument out of domain] what: [FIX ME: Numerical argument out of domain]