27 Input/output library [input.output]

27.10 File systems [filesystems]

27.10.9 Class filesystem_error [class.filesystem_error]

namespace std::filesystem {
  class filesystem_error : public system_error {
  public:
    filesystem_error(const string& what_arg, error_code ec);
    filesystem_error(const string& what_arg,
                     const path& p1, error_code ec);
    filesystem_error(const string& what_arg,
                     const path& p1, const path& p2, error_code ec);

    const path& path1() const noexcept;
    const path& path2() const noexcept;
    const char* what() const noexcept override;
  };
}

The class filesystem_error defines the type of objects thrown as exceptions to report file system errors from functions described in this subclause.

27.10.9.1 filesystem_error members [filesystem_error.members]

Constructors are provided that store zero, one, or two paths associated with an error.

filesystem_error(const string& what_arg, error_code ec);

Postconditions: The postconditions of this function are indicated in Table [tab:filesystem_error.1].

Table 119filesystem_error(const string&, error_code) effects
ExpressionValue
runtime_error::what() what_arg.c_str()
code() ec
path1().empty() true
path2().empty() true

filesystem_error(const string& what_arg, const path& p1, error_code ec);

Postconditions: The postconditions of this function are indicated in Table [tab:filesystem_error.2].

Table 120filesystem_error(const string&, const path&, error_code) effects
ExpressionValue
runtime_error::what() what_arg.c_str()
code() ec
path1() Reference to stored copy of p1
path2().empty() true

filesystem_error(const string& what_arg, const path& p1, const path& p2, error_code ec);

Postconditions: The postconditions of this function are indicated in Table [tab:filesystem_error.3].

Table 121filesystem_error(const string&, const path&, const path&, error_code) effects
ExpressionValue
runtime_error::what() what_arg.c_str()
code() ec
path1() Reference to stored copy of p1
path2() Reference to stored copy of p2

const path& path1() const noexcept;

Returns: A reference to the copy of p1 stored by the constructor, or, if none, an empty path.

const path& path2() const noexcept;

Returns: A reference to the copy of p2 stored by the constructor, or, if none, an empty path.

const char* what() const noexcept override;

Returns: A string containing runtime_error::what(). The exact format is unspecified. Implementations are encouraged but not required to include path1.native_string() if not empty, path2.native_string() if not empty, and system_error::what() strings in the returned string.