std::system_error::system_error
De es.cppreference.net
system_error( std::error_code ec );
|
(1) | (desde C++11) |
system_error( std::error_code ec, const std::string& what_arg );
|
(2) | (desde C++11) |
system_error( std::error_code ec, const char* what_arg );
|
(2) | (desde C++11) |
system_error( int ev, const std::error_category& ecat );
|
(3) | (desde C++11) |
system_error( int ev, const std::error_category& ecat,
const std::string& what_arg );
|
(4) | (desde C++11) |
system_error( int ev, const std::error_category& ecat,
const char* what_arg );
|
(4) | (desde C++11) |
system_error( const system_error& other ) noexcept;
|
(5) | (desde C++11) |
Construye un nuevo objeto de error del sistema.
1) Construye con el código de error
ec.2) Construye con el código de error
ec y la cadena de explicación what_arg. Se garantiza que la cadena devuelta por what() contiene what_arg como subcadena.3) Construye con el código de error subyacente
ev y la categoría de error asociada ecat.4) Construye con el código de error subyacente
ev, la categoría de error asociada ecat y la cadena explicativa what_arg. Se garantiza que la cadena devuelta por what() contiene what_arg como subcadena (asumiendo que no contiene un carácter nulo incrustado).5) Constructor de copia. Inicializa el contenido con el de
other. Si *this y other ambos tienen tipo dinámico std::system_error, entonces std::strcmp(what(), other.what()) == 0.Parámetros
| ec | - | código de error |
| ev | - | código de error subyacente en la enumeración asociada con ecat |
| ecat | - | la categoría de error |
| what_arg | - | cadena explicativa |
| other | - |
otro
system_error
para copiar
|
Ejemplo
Demuestra cómo crear una excepción
system_error
a partir de un valor
errno
.
Ejecutar este código
#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"; } }
Salida posible:
code: [generic:33] message: [Numerical argument out of domain] what: [FIX ME: Numerical argument out of domain]