The header provides class filesystem_error, publicly derived from std::runtime_error, which is used by functions in the Filesystem Library to report operational errors.
The design evolved based on user requests to ease portability and internationalization. See the Boost Error and Exception Handling guidelines.
namespace boost
{
namespace filesystem
{
enum error_code
{
no_error = 0,
system_error, // system generated error; if possible, is translated
// to one of the more specific errors below.
other_error, // library generated error
security_error, // includes access rights, permissions failures
read_only_error,
io_error,
path_error,
not_found_error,
not_directory_error,
busy_error, // implies trying again might succeed
already_exists_error,
not_empty_error,
is_directory_error,
out_of_space_error,
out_of_memory_error,
out_of_resource_error
};
class filesystem_error : public std::exception
{
public:
filesystem_error( const std::string & who,
const std::string & message );
filesystem_error( const std::string & who,
const path & path1, const std::string & message );
filesystem_error( const std::string & who,
const path & path1, sys_err sys_err_code );
filesystem_error( const std::string & who,
const path & path1, const path & path2,
sys_err sys_err_code );
~filesystem_error() throw();
virtual const char * what() const throw();
sys_err native_error() const;
error_code error() const;
const std::string & who() const;
const path & path1() const;
const path & path2() const;
};
} // namespace filesystem
} // namespace boost
For POSIX and Windows, sys_err is int. For
other operating systems, it is implementation defined.
filesystem_error( const std::string & who, const std::string & message ); filesystem_error( const std::string & who, const path & path1, const std::string & message ); filesystem_error( const std::string & who, const path & path1, int sys_err_code ); filesystem_error( const std::string & who, const path & path1, const path & path2, int sys_err_code );
Precondition: The who argument is in the form, as
appropriate:
These forms are explicitly specified to ensure portability of user programs between library implementations.
Effects: Constructs a filesystem_error object.
virtual const char * what() const throw();
Returns: A string identifying the error, including who(), path1(), path2(), and related messages. If an error occurs in the preparation of the string, particularly in low-memory situations, an implementation is permitted to return a simpler static string.
sys_err native_error() const;
Returns: The sys_err_code argument to the constructor, if
any. Otherwise, 0.
error_code error() const;
Returns: native_error() translated to
error_code. The translation is
implementation-defined. For the POSIX and Windows implementations, see
libs/filesystem/src/exception.cpp.
const std::string & who() const;
Returns: The who argument to the
constructor. An implementation is permitted to return an empty string if an
exception, for example, std::bad_alloc, occurs during processing.
const path & path1() const;
Returns: The path1 argument to the
constructor, if any, otherwise path(). An implementation is
permitted to return an empty path if an exception, for example,
std::bad_alloc,
occurs during processing.
const path & path2() const;
Returns: The path2 argument to the
constructor, if any, otherwise path(). An implementation is
permitted to return an empty path if an exception, for example,
std::bad_alloc,
occurs during processing.
Peter Dimov patently identified requirements for portability and internationalization of error messages.
Revised 17 сентября, 2005
© Copyright Beman Dawes, 2002
Use, modification, and distribution are subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at www.boost.org/LICENSE_1_0.txt)
библиотека BOOST C++
http://www.boost.org
перевод
Elijah Koziev
www.solarix.ru