Espacios de nombres
Variantes
Acciones

std::filesystem::filesystem_error::what

De cppreference.com
 
 
 
 
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

#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(): ""