mirror of
https://github.com/boostorg/system.git
synced 2025-11-04 17:51:53 +01:00
127 lines
6.0 KiB
HTML
127 lines
6.0 KiB
HTML
|
|
<html>
|
|||
|
|
|
|||
|
|
<head>
|
|||
|
|
<meta http-equiv="Content-Language" content="en-us">
|
|||
|
|
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
|
|||
|
|
<meta name="ProgId" content="FrontPage.Editor.Document">
|
|||
|
|
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
|
|||
|
|
<title>Boost system/system_error.hpp documentation
|
|||
|
|
</title>
|
|||
|
|
</head>
|
|||
|
|
|
|||
|
|
<body bgcolor="#FFFFFF">
|
|||
|
|
|
|||
|
|
<h1>Header <a href="../../../boost/system/system_error.hpp">boost/system/system_error.hpp</a></h1>
|
|||
|
|
<p><a href="#Introduction">Introduction</a><br>
|
|||
|
|
<a href="#Synopsis">Synopsis</a><br>
|
|||
|
|
<a href="#Class-system_error">Class <code>system_error</code></a><br>
|
|||
|
|
<a href="#Class-system_error-members">Members</a><br>
|
|||
|
|
<a href="#Acknowledgements">Acknowledgements</a></p>
|
|||
|
|
<h2><a name="Introduction">Introduction</a></h2>
|
|||
|
|
<p>This header provides components used to report errors originating from the
|
|||
|
|
operating system or other low-level application program interfaces (API's). It is based on the <i>Diagnostics</i>
|
|||
|
|
portion of the TR2 filesystem proposal.</p>
|
|||
|
|
<h2><a name="Synopsis">Synopsis</a></h2>
|
|||
|
|
<pre>namespace boost
|
|||
|
|
{
|
|||
|
|
namespace system
|
|||
|
|
{
|
|||
|
|
enum message_action { append_message, no_message };
|
|||
|
|
|
|||
|
|
class system_error : public std::runtime_error
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
explicit <a href="#system_error-1">system_error</a>( error_code ec );
|
|||
|
|
|
|||
|
|
<a href="#system_error-2">system_error</a>( error_code ec, const std::string & what_arg,
|
|||
|
|
message_action ma = append_message );
|
|||
|
|
|
|||
|
|
<a href="#system_error-3">system_error</a>( error_code::value_type ev, error_category ecat );
|
|||
|
|
|
|||
|
|
<a href="#system_error-4">system_error</a>( error_code::value_type ev, error_category ecat,
|
|||
|
|
const std::string & what_arg, message_action ma = append_message );
|
|||
|
|
|
|||
|
|
virtual ~system_error() throw() {}
|
|||
|
|
|
|||
|
|
const error_code & <a href="#code">code</a>() const throw();
|
|||
|
|
|
|||
|
|
const char * <a href="#what">what</a>() const throw();
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
error_code m_error_code; // for exposition only
|
|||
|
|
bool m_append_message; // for exposition only
|
|||
|
|
mutable std::string m_what; // for exposition only
|
|||
|
|
};
|
|||
|
|
} // namespace system
|
|||
|
|
} // namespace boost</pre>
|
|||
|
|
<h2><a name="Class-system_error">Class <code>system_error</code></a></h2>
|
|||
|
|
<p>Class <code><a href="#Class-system_error-members">system_error</a></code> defines
|
|||
|
|
the type of an object that may be thrown as
|
|||
|
|
an exception to report errors originating from the operating system or other
|
|||
|
|
low-level API's, or used as a base class for more refined exception classes. It
|
|||
|
|
encapsulates an <code><a href="error_code.html">error_code</a></code> object.</p>
|
|||
|
|
<blockquote>
|
|||
|
|
<p><i>[Note:</i> A single low-level class, rather than a higher level exception
|
|||
|
|
class hierarchy, is provided to allow users access to low-level error codes
|
|||
|
|
originating from the operating system or other low-level API's, and to
|
|||
|
|
accommodate the open-ended set of errors that may be reported by such API's. <i>
|
|||
|
|
--end note.]</i></p>
|
|||
|
|
</blockquote>
|
|||
|
|
<h2><a name="Class-system_error-members">Class <code>system_error</code> Members</a></h2>
|
|||
|
|
<p><code>explicit <a name="system_error-1">system_error</a>( error_code ec );</code></p>
|
|||
|
|
<blockquote>
|
|||
|
|
<p><i>Effects:</i> Constructs an object of class <code>system_error</code>.</p>
|
|||
|
|
<p><i>Postcondition:</i> <code>code() == ec && *runtime_error::what() == '\0'
|
|||
|
|
&& </code><code>m_append_message</code>.</p>
|
|||
|
|
</blockquote>
|
|||
|
|
<pre><a name="system_error-2">system_error</a>( error_code ec, const std::string & what_arg, message_action ma = append_message );</pre>
|
|||
|
|
<blockquote>
|
|||
|
|
<p><i>Effects:</i> Constructs an object of class <code>system_error</code>.</p>
|
|||
|
|
<p><i>Postcondition:</i> <code>code() == ec && std::string(runtime_error::what())
|
|||
|
|
== </code><code>what_arg</code><code> && m_append_message == ma</code>.</p>
|
|||
|
|
</blockquote>
|
|||
|
|
<pre><a name="system_error-3">system_error</a>( error_code::value_type ev, error_category ecat );</pre>
|
|||
|
|
<blockquote>
|
|||
|
|
<p><i>Effects:</i> Constructs an object of class <code>system_error</code>.</p>
|
|||
|
|
<p><i>Postcondition:</i> <code>code() == error_code(ev,ecat) && *runtime_error::what()
|
|||
|
|
== '\0' && m_append_message</code>.</p>
|
|||
|
|
</blockquote>
|
|||
|
|
<pre><a name="system_error-4">system_error</a>( error_code::value_type ev, error_category ecat,
|
|||
|
|
const std::string & what_arg, message_action ma = append_message );</pre>
|
|||
|
|
<blockquote>
|
|||
|
|
<p><i>Effects:</i> Constructs an object of class <code>system_error</code>.</p>
|
|||
|
|
<p><i>Postcondition:</i> <code>code() == error_code(ev,ecat) && std::string(runtime_error::what())
|
|||
|
|
== </code><code>what_arg</code><code> && m_append_message == ma</code>.</p>
|
|||
|
|
</blockquote>
|
|||
|
|
<pre>const error_code & <a name="code">code</a>() const throw();</pre>
|
|||
|
|
<blockquote>
|
|||
|
|
<p><i>Returns: </i> <code>m_error_code</code></p>
|
|||
|
|
</blockquote>
|
|||
|
|
<pre>const char * <a name="what">what</a>() const throw();</pre>
|
|||
|
|
<blockquote>
|
|||
|
|
<p><i>Returns: </i>If <code>!m_error_code || !m_append_message</code>, <code>
|
|||
|
|
runtime_error::what()</code>. Otherwise, a string as if computed by:</p>
|
|||
|
|
<blockquote>
|
|||
|
|
<pre>m_what = runtime_error::what();
|
|||
|
|
if ( !m_what.empty() ) m_what += ": ";
|
|||
|
|
m_what += m_error_code.message();
|
|||
|
|
return m_what.c_str();</pre>
|
|||
|
|
</blockquote>
|
|||
|
|
</blockquote>
|
|||
|
|
<h2><a name="Acknowledgements">Acknowledgements</a></h2>
|
|||
|
|
<p>Christopher Kohlhoff and Peter Dimov made important contributions to the
|
|||
|
|
design. Comments and suggestions were also received from Pavel Vozenilek,
|
|||
|
|
Gennaro Prota, Dave Abrahams, Jeff Garland, Iain Hanson, Jeremy Day, Bo
|
|||
|
|
Persson, Oliver Kowalke, and
|
|||
|
|
Oleg Abrosimov.</p>
|
|||
|
|
<hr>
|
|||
|
|
<p>Last revised:
|
|||
|
|
<!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->22 July, 2006<!--webbot bot="Timestamp" endspan i-checksum="21146" --></p>
|
|||
|
|
<p><EFBFBD> Copyright Beman Dawes, 2006</p>
|
|||
|
|
<p>Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|||
|
|
file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or copy at
|
|||
|
|
<a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/ LICENSE_1_0.txt</a>)</p>
|
|||
|
|
|
|||
|
|
</body>
|
|||
|
|
|
|||
|
|
</html>
|