std::filesystem::filesystem_error::what
De cppreference.com
< cpp | filesystem | filesystem error
constchar* what()constnoexcept 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_errorconst& 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_errorconst& ex){ explicar("fs::rename()", ex);} for(autoconst path :{"/bool", "/bin/gato", "/bin/perro"})try{std::filesystem::create_directory(path);}catch(fs::filesystem_errorconst& 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(): ""