FBB::Exception objects derived from std::exception, but accept
stream insertions. Their intended use consists of throwing an anonymous
object, into which the text of the std::exception::what
message has been inserted.
Exception exceptions are thrown by several Bobcat classes. These
classes are
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
NAMESPACE
FBB
All constructors, members, operators and manipulators, mentioned in this
man-page, are defined in the namespace FBB.
INHERITS FROM
std::exception
CONSTRUCTORS
Exception():
The default constructor
Exception(int errnoValue):
This constructor stores the provided errnoValue value in the global
::errno variable, provided by the run-time support system.
Move and copy constructors are available.
MEMBER FUNCTIONS
All members of std::exception are
available, as FBB::Exception inherits from this class.
char const *what() const noexcept(true) override:
Returns the text that was inserted into the FBB::Exception object.
OVERLOADED OPERATORS
Exception &&operator<<(Exception &&in, Type const &t):
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
ostringstream object.
The overloaded assignment and move assignment operators are available.
STATIC MEMBERS
The following convenience functions can be used for controlled opening of
stream-type objects, like std::ofstream and std::ifstream. These
stream-type objects must support open and close members, like those
provided by std::ifstream and std::ofstream.
If the stream was already open it is first closed.
If opening fails an FBB::Exception exception is thrown containing a
short message stating that the named stream could not be opened.
static void open(StreamType &stream, std::string const &name):
Opens the stream object, using its default open member.
static void open(int errnoValue,
StreamType &stream, std::string const &name):
Opens the stream object, using its default open member. If opening
the stream fails, then the thrown FBB::Exception assigns
errnoValue to ::errno.
static void open(StreamType &stream, std::string const &name,
std::ios::openmode mode):
Opens the stream object, using its open member, passing mode to
open.
static void open(int errnoValue, StreamType &stream,
std::string const &name, std::ios::openmode mode):
Opens the stream object, using its open member, passing mode to
open. If opening the stream fails, then the thrown
FBB::Exception assigns errnoValue to ::errno.
MANIPULATOR
The following manipulator (which is not part of the
FBB::Exception, class, but is defined in the FBB namespace) can be
inserted into the FBB::Exception object:
FBB::errnodescr:
The descriptive text associated with the current errno value is
inserted into the FBB::Exception object (it can also be used to insert the
descriptive text in a std::ostream object). No text is inserted if
errno equals zero. This manipulator is thread-safe (but errno may be
modified when errno holds an invalid value).
EXAMPLE
if (exceptionalCondition)
throw FBB::Exception(1) << "Exceptional condition occurred";
FILES
bobcat/exception - defines the class interface
SEE ALSO
bobcat(7)
BUGS
None Reported.
DISTRIBUTION FILES
bobcat_3.14.00-x.dsc: detached signature;
bobcat_3.14.00-x.tar.gz: source archive;
bobcat_3.14.00-x_i386.changes: change log;
libbobcat1_3.14.00-x_*.deb: debian package holding the
libraries;
libbobcat1-dev_3.14.00-x_*.deb: debian package holding the
libraries, headers and manual pages;
http://sourceforge.net/projects/bobcat: public archive location;
BOBCAT
Bobcat is an acronym of `Brokken's Own Base Classes And Templates'.
COPYRIGHT
This is free software, distributed under the terms of the
GNU General Public License (GPL).