FreeBSD Manual Pages
std::filesy...system_error(3) C++ Standard Libarystd::filesy...system_error(3) NAME std::filesystem::filesystem_error - std::filesystem::filesystem_error Synopsis Defined in header <filesystem> class filesystem_error; (since C++17) The class std::filesystem::filesystem_error defines an exception ob- ject that is thrown on failure by the throwing overloads of the functions in the filesystem library. std-filesystem-filesystem error-inheritance.svg Inheritance diagram Member functions constructor constructs the exception object (public member function) operator= replaces the exception object (public member function) path1 returns the paths that were involved in the operation that caused the path2 error (public member function) what returns the explanatory string (public member function) Inherited from std::system_error Member functions code returns error code (public member function of std::system_error) what returns an explanatory string [virtual] (virtual public member function of std::system_error) Inherited from std::runtime_error Inherited from std::exception Member functions destructor destroys the exception object [virtual] (virtual public member function of std::exception) what returns an explanatory string [virtual] (virtual public member function of std::exception) Notes In order to ensure that copy functions of filesystem_error are noex- cept, typical implementations store an object holding the return value of what() and two std::filesystem::path objects referenced by path1() and path2() re- spectively in a separately-allocated reference-counted storage. Currently the MS STL implementation is non-conforming: objects men- tioned above are stored directly in the filesystem object, which makes the copy func- tions not noexcept. Example // Run this code #include <system_error> #include <filesystem> #include <iostream> int main() { const std::filesystem::path from{"/nonexistent1/a"}, to{"/nonexis- tent2/b"}; try { std::filesystem::copy_file(from, to); // throws: files do not exist } catch(std::filesystem::filesystem_error const& ex) { std::cout << "what(): " << ex.what() << '\n' << "path1(): " << ex.path1() << '\n' << "path2(): " << ex.path2() << '\n' << "code().value(): " << ex.code().value() << '\n' << "code().message(): " << ex.code().message() << '\n' << "code().category(): " << ex.code().category().name() << '\n'; } // All functions have non-throwing equivalents std::error_code ec; std::filesystem::copy_file(from, to, ec); // does not throw std::cout << "\nnon-throwing form sets error_code: " << ec.mes- sage() << '\n'; } Possible output: what(): filesystem error: cannot copy file: No such file or directory [/nonexistent1/a] [/nonexistent2/b] path1(): "/nonexistent1/a" path2(): "/nonexistent2/b" code().value(): 2 code().message(): No such file or directory code().category(): generic non-throwing form sets error_code: No such file or directory http://cppreference.com 2022.07.31 std::filesy...system_error(3)
NAME | Synopsis | Member functions | Member functions | Member functions | Notes | Example | Possible output:
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::filesystem::filesystem_error&sektion=3&manpath=FreeBSD+Ports+15.0>
