/usr/share/doc/libbobcat4-dev/man/exception.3.html is in libbobcat-dev 4.04.00-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 | <!DOCTYPE html><html><head>
<meta charset="UTF-8">
<title>FBB::Exception</title>
<style type="text/css">
figure {text-align: center;}
img {vertical-align: center;}
</style>
<link rev="made" href="mailto:Frank B. Brokken: f.b.brokken@rug.nl">
</head>
<body text="#27408B" bgcolor="#FFFAF0">
<hr/>
<h1 id="title">FBB::Exception</h1>
<h2 id="author">libbobcat-dev_4.04.00-x.tar.gz</h2>
<h2 id="date">2005-2016</h2>
<!DOCTYPE html><html><head>
<meta charset="UTF-8">
<style type="text/css">
figure {text-align: center;}
img {vertical-align: center;}
figure {text-align: center;}
img {vertical-align: center;}
</style>
<link rev="made" href="mailto:Frank B. Brokken: f.b.brokken@rug.nl">
</head>
<body text="#27408B" bgcolor="#FFFAF0">
<hr/>
<h1 id="title"></h1>
<!DOCTYPE html><html><head>
<meta charset="UTF-8">
<title>FBB::Exception(3bobcat)</title>
<style type="text/css">
figure {text-align: center;}
img {vertical-align: center;}
figure {text-align: center;}
img {vertical-align: center;}
figure {text-align: center;}
img {vertical-align: center;}
</style>
<link rev="made" href="mailto:Frank B. Brokken: f.b.brokken@rug.nl">
</head>
<body text="#27408B" bgcolor="#FFFAF0">
<hr/>
<h1 id="title">FBB::Exception(3bobcat)</h1>
<h2 id="author">libbobcat-dev_4.04.00-x.tar.gz Error handler</h2>
<h2 id="date">2005-2016</h2>
<p>
<h2 >NAME</h2>FBB::Exception - std::exception objects acception stream insertions
<p>
<h2 >SYNOPSIS</h2>
<strong >#include <bobcat/exception></strong><br/>
Linking option: <em >-lbobcat</em>
<p>
<h2 >DESCRIPTION</h2>
<strong >FBB::Exception</strong> objects derived from <em >std::exception</em>, but accept
stream insertions. Their intended use consists of throwing an anonymous
object, into which the text of the <em >std::exception::what</em>
message has been inserted.
<p>
<em >Exception</em> exceptions are thrown by several Bobcat classes. These
classes are <em >
Arg,
ArgConfig,
BigInt,
Cgi,
Cidr,
ClientSocket,
CmdFinderBase,
ConfigFile,
DateTime,
DecryptBuf,
DigestBuf,
EncryptBuf,
Fork,
GetHostent,
Glob,
HMacBuf,
Hostname,
LocalClientSocket,
LocalServerSocket,
LocalSocketBase,
Log,
MailHeaders,
Mbuf,
Milter,
Mstream,
OFoldStreambuf,
OneKey,
Pattern,
Pipe,
Process,
Redirector,
Selector,
ServerSocket,
Signal,
SocketBase,
Stat,
TempStream,
User,
Xpointer</em>
<p>
<h2 >NAMESPACE</h2>
<strong >FBB</strong><br/>
All constructors, members, operators and manipulators, mentioned in this
man-page, are defined in the namespace <strong >FBB</strong>.
<p>
<h2 >INHERITS FROM</h2>
<strong >std::exception</strong>
<p>
<h2 >ENUMERATION</h2>
The enumeration <em >Protection</em> is used by the member <em >protection</em>
described below. The enumeration has two values:
<ul>
<li> <em >ANY</em>: an existing file may have any set of protection bits;
<li> <em >EQUAL</em>: an existing file mut have exactly the set of protection bits
as specified when calling <em >Exception::protection</em>.
</ul>
<p>
<h2 >CONSTRUCTORS</h2>
<ul>
<li> <strong >Exception()</strong>:<br/>
The default constructor (assigns 0 to <em >FBB::g_errno</em>, see the next
constructor).
<p>
<li> <strong >Exception(int errnoValue)</strong>:<br/>
This constructor stores the provided <em >errnoValue</em> value in a thread-local
variable <em >int FBB::g_errno</em>. Before Bobcat 4.04.00 <em >errnoValue</em> was
only stored in the global <em >::errno</em> variable (it still is), but as this
variable is also used by many other functions, <em >errno's</em> value may have
changed by the time the exception is caught. The <em >thread_local int
FBB::g_errno</em> variable does not have that drawback.
<p>
When <em >g_errno</em> must be declared without including <em >bobcat/exception</em>
then do
<pre>
namespace FBB
{
extern thread_local int g_errno;
}
</pre>
</ul>
<p>
Move and copy constructors are available.
<p>
<h2 >MEMBER FUNCTIONS</h2>
All members of <strong >std::exception</strong> are
available, as <strong >FBB::Exception</strong> inherits from this class.
<ul>
<li> <strong >char const *what() const noexcept(true) override</strong>:<br/>
Returns the text that was inserted into the <strong >FBB::Exception</strong> object.
</ul>
<p>
<h2 >OVERLOADED OPERATORS</h2>
<ul>
<li> <strong >Exception &&operator<<(Exception &&in, Type const &t)</strong>:<br/>
A function template implementing the overloaded insertion operator. It
can be used to insert values of any type that can also be inserted into an
<em >ostringstream</em> object.
</ul>
The overloaded assignment and move assignment operators are available.
<p>
<h2 >STATIC MEMBERS</h2>
<p>
The following convenience functions can be used for controlled opening of
stream-type objects, like <em >std::ofstream</em> and <em >std::ifstream</em>. These
stream-type objects must support <em >open</em> and <em >close</em> members, like those
provided by <em >std::ifstream</em> and <em >std::ofstream</em>.
<p>
If the stream was already open it is first closed.
<p>
If opening fails an <em >FBB::Exception</em> exception is thrown containing a
short message stating that the named stream could not be opened.
<p>
<ul>
<li> <strong >static void open(StreamType &stream, std::string const &name)</strong>:<br/>
Opens the stream object, using its default <em >open</em> member.
<p>
<li> <strong >static void open(int errnoValue,
StreamType &stream, std::string const &name)</strong>:<br/>
Opens the stream object, using its default <em >open</em> member. If opening
the stream fails, then the thrown <strong >FBB::Exception</strong> assigns
<em >errnoValue</em> to <em >::errno</em>.
<p>
<li> <strong >static void open(StreamType &stream, std::string const &name,
std::ios::openmode mode)</strong>:<br/>
Opens the stream object, using its <em >open</em> member, passing <em >mode</em> to
<em >open</em>.
<p>
<li> <strong >static void open(int errnoValue, StreamType &stream,
std::string const &name, std::ios::openmode mode)</strong>:<br/>
Opens the stream object, using its <em >open</em> member, passing <em >mode</em> to
<em >open</em>. If opening the stream fails, then the thrown
<strong >FBB::Exception</strong> assigns <em >errnoValue</em> to <em >::errno</em>.
<p>
<li> <strong >static size_t protection(std::string const &path, size_t protect,
Protection type = EQUAL)</strong>:<br/>
Returns the protection bits (cf. <strong >open</strong>(2)) of <em >path</em>. The
<em >protect</em> parameter is used to specify the requested protection
bits. This value is usually specified as an octal value. If the
specified value exceeds 0777 an exception is thrown. The third
parameter is only used in combination with already existing files. If
specified as <em >ANY</em> the file's actual permission bits are not
compared with <em >protect</em>; if specified as <em >EQUAL</em> the file's
permission bits must be identical to <em >protect</em>, or an exception is
thrown. If <em >path</em> does not yet exist a file <em >path</em> with permission
<em >protect</em> is created. This member returns <em >path</em>'s permission
bits.
<p>
If <em >path</em> is created by <em >protection</em>, then opening a stream for
<em >path</em> does not change <em >path</em>'s protection.
</ul>
<p>
<h2 >MANIPULATOR</h2>
<p>
The following manipulator (which is <em >not</em> part of the
<strong >FBB::Exception</strong>, class, but <em >is</em> defined in the <strong >FBB</strong> namespace) can be
inserted into the <strong >FBB::Exception</strong> object:
<ul>
<li> <strong >FBB::errnodescr</strong>:<br/>
The descriptive text associated with the current <em >errno</em> value is
inserted into the <strong >FBB::Exception</strong> object (it can also be used to insert the
descriptive text in a <em >std::ostream</em> object). No text is inserted if
<em >errno</em> equals zero. This manipulator is thread-safe (but <em >errno</em> may be
modified when <em >errno</em> holds an invalid value).
</ul>
<p>
<h2 >EXAMPLE</h2>
<pre>
if (exceptionalCondition)
throw FBB::Exception(1) << "Exceptional condition occurred";
</pre>
<p>
<h2 >FILES</h2>
<em >bobcat/exception</em> - defines the class interface
<p>
<h2 >SEE ALSO</h2>
<strong >bobcat</strong>(7)
<p>
<h2 >BUGS</h2>
None Reported.
<p>
<h2 >DISTRIBUTION FILES</h2>
<ul>
<li> <em >bobcat_4.04.00-x.dsc</em>: detached signature;
<li> <em >bobcat_4.04.00-x.tar.gz</em>: source archive;
<li> <em >bobcat_4.04.00-x_i386.changes</em>: change log;
<li> <em >libbobcat1_4.04.00-x_*.deb</em>: debian package holding the
libraries;
<li> <em >libbobcat1-dev_4.04.00-x_*.deb</em>: debian package holding the
libraries, headers and manual pages;
<li> <em >http://sourceforge.net/projects/bobcat</em>: public archive location;
</ul>
<p>
<h2 >BOBCAT</h2>
Bobcat is an acronym of `Brokken's Own Base Classes And Templates'.
<p>
<h2 >COPYRIGHT</h2>
This is free software, distributed under the terms of the
GNU General Public License (GPL).
<p>
<h2 >AUTHOR</h2>
Frank B. Brokken (<strong >f.b.brokken@rug.nl</strong>).
<p>
|