std::filesystem::filesystem_error::what
De cppreference.com
< cpp | filesystem | filesystem error
const char* what() const noexcept override; |
(desde C++17) | |
Devuelve una cadena de caracteres aclaratoria. Esta cadena aclaratoria contiene la cadena aclaratoria pasada en el momento de la construcción. Se recomienda que las implementaciones incluyan los nombres de ruta de path1() y path2() en formato nativo y también la cadena std::system_error::what() dentro de la cadena devuelta.
[editar] Parámetros
(Ninguno)
[editar] Valor de retorno
Una cadena aclaratoria estilo C terminada en nulo que contiene la cadena aclaratoria pasada en el momento de la construcción.
[editar] Ejemplo
Ejecuta este código
#include <cstdio> #include <filesystem> #include <iostream> #include <string_view> namespace fs = std::filesystem; void explicar(std::string_view note, fs::filesystem_error const& ex) { std::cout << note << " exception:\n" << "what(): " << ex.what() << '\n' << "path1(): " << ex.path1() << ", path2(): " << ex.path2() << "\n\n"; } int main() { try { std::filesystem::rename("/dev", "/null"); } catch(fs::filesystem_error const& ex) { explicar("fs::rename()", ex); } for (auto const path : {"/bool", "/bin/gato", "/bin/perro"}) try { std::filesystem::create_directory(path); } catch(fs::filesystem_error const& ex) { explicar("fs::create_directory()", ex); } }
Posible salida:
fs::rename() exception: what(): filesystem error: cannot rename: Permission denied [/dev] [/null] path1(): "/dev", path2(): "/null" fs::create_directory() exception: what(): filesystem error: cannot create directory: Permission denied [/bool] path1(): "/bool", path2(): "" fs::create_directory() exception: what(): filesystem error: cannot create directory: File exists [/bin/gato] path1(): "/bin/gato", path2(): "" fs::create_directory() exception: what(): filesystem error: cannot create directory: Read-only file system [/bin/perro] path1(): "/bin/perro", path2(): ""