|
blocxx
|
#include "blocxx/BLOCXX_config.h"#include "blocxx/AutoPtr.hpp"#include <iosfwd>#include <exception>#include <new>#include <cerrno>Go to the source code of this file.
Classes | |
| class | BLOCXX_NAMESPACE::Exception |
| This class is the base of all exceptions thrown by BloCxx code. More... | |
| class | BLOCXX_NAMESPACE::ExceptionDetail::FormatMsg |
| struct | BLOCXX_NAMESPACE::ExceptionDetail::Errno< exType > |
Namespaces | |
| namespace | BLOCXX_NAMESPACE |
| Taken from RFC 1321. | |
| namespace | BLOCXX_NAMESPACE::ExceptionDetail |
Macros | |
| #define | BLOCXX_THROW(exType, msg) throw exType(__FILE__, __LINE__, (msg)) |
| Throw an exception using FILE and LINE. | |
| #define | BLOCXX_THROWL(exType, line, msg) throw exType(__FILE__, (line), (msg)) |
| This macro is deprecated in 3.1.0. | |
| #define | BLOCXX_THROW_SUBEX(exType, msg, subex) |
| Throw an exception using FILE and LINE. | |
| #define | BLOCXX_THROW_ERR(exType, msg, err) throw exType(__FILE__, __LINE__, (msg), (err)) |
| Throw an exception using FILE and LINE. | |
| #define | BLOCXX_THROW_ERRNO(exType) BLOCXX_THROW_ERRNO1(exType, errno) |
| Throw an exception using FILE, LINE, errno and strerror(errno) | |
| #define | BLOCXX_THROW_ERRNO1(exType, errnum) throw ::BLOCXX_NAMESPACE::ExceptionDetail::Errno< exType >::simple(__FILE__, __LINE__, (errnum)) |
| Throw an exception using FILE, LINE, errnum and strerror(errnum) | |
| #define | BLOCXX_THROW_ERRNO_MSG(exType, msg) BLOCXX_THROW_ERRNO_MSG1(exType, (msg), errno) |
| Throw an exception using FILE, LINE, errno and strerror(errno) | |
| #define | BLOCXX_THROW_ERRNO_MSG1(exType, msg, errnum) |
| Throw an exception using FILE, LINE, errnum and strerror(errnum) | |
| #define | BLOCXX_THROW_ERR_SUBEX(exType, msg, err, subex) throw exType(__FILE__, __LINE__, (msg), (err), &(subex)) |
| Throw an exception using FILE and LINE. | |
| #define | BLOCXX_DECLARE_EXCEPTION2(NAME, BASE) |
| Declare a new exception class named <NAME>Exception that derives from <BASE>. | |
| #define | BLOCXX_DECLARE_APIEXCEPTION2(NAME, BASE, LINKAGE_SPEC) |
| Declare a new exception class named <NAME>Exception that derives from <BASE>. | |
| #define | BLOCXX_DECLARE_EXCEPTION(NAME) BLOCXX_DECLARE_EXCEPTION2(NAME, ::BLOCXX_NAMESPACE::Exception) |
| Declare a new exception class named <NAME>Exception that derives from Exception This macro is typically used in a header file. | |
| #define | BLOCXX_DECLARE_APIEXCEPTION(NAME, LINKAGE_SPEC) BLOCXX_DECLARE_APIEXCEPTION2(NAME, ::BLOCXX_NAMESPACE::Exception, LINKAGE_SPEC) |
| Declare a new exception class named <NAME>Exception that derives from Exception This macro is typically used in a header file. | |
| #define | BLOCXX_DEFINE_EXCEPTION2(NAME, BASE) |
| Define a new exception class named <NAME>Exception that derives from <BASE>. | |
| #define | BLOCXX_DEFINE_EXCEPTION_WITH_BASE_AND_ID_AUX(NAME, BASE, SUB_CLASS_ID) |
| Define a new exception class named <NAME>Exception that derives from <BASE>. | |
| #define | BLOCXX_DEFINE_EXCEPTION(NAME) BLOCXX_DEFINE_EXCEPTION_WITH_BASE_AND_ID_AUX(NAME, ::BLOCXX_NAMESPACE::Exception, ::BLOCXX_NAMESPACE::Exception::UNKNOWN_SUBCLASS_ID) |
| Define a new exception class named <NAME>Exception that derives from Exception. | |
| #define | BLOCXX_DEFINE_EXCEPTION_WITH_ID(NAME) BLOCXX_DEFINE_EXCEPTION_WITH_BASE_AND_ID_AUX(NAME, ::BLOCXX_NAMESPACE::Exception, ::BLOCXX_NAMESPACE::ExceptionIds::NAME##ExceptionId) |
| Define a new exception class named <NAME>Exception that derives from Exception. | |
| #define | BLOCXX_DEFINE_EXCEPTION_WITH_BASE_AND_ID(NAME, BASE) BLOCXX_DEFINE_EXCEPTION_WITH_BASE_AND_ID_AUX(NAME, BASE, ::BLOCXX_NAMESPACE::ExceptionIds::NAME##ExceptionId) |
| Define a new exception class named <NAME>Exception that derives from <BASE>. | |
Functions | |
| void | BLOCXX_NAMESPACE::ExceptionDetail::portable_strerror_r (int errnum, char *buf, unsigned n) |
| std::ostream & | BLOCXX_NAMESPACE::operator<< (std::ostream &os, const Exception &e) |
| Writes the exception object to the stream in the form: <file>: <line> <type>: <message> | |
Variables | |
| struct BLOCXX_COMMON_API | BLOCXX_NAMESPACE::ExceptionDetail::FormatMsgImpl |
| unsigned const | BLOCXX_NAMESPACE::ExceptionDetail::BUFSZ = 1024 |
| #define BLOCXX_DECLARE_APIEXCEPTION | ( | NAME, | |
| LINKAGE_SPEC | |||
| ) | BLOCXX_DECLARE_APIEXCEPTION2(NAME, ::BLOCXX_NAMESPACE::Exception, LINKAGE_SPEC) |
Declare a new exception class named <NAME>Exception that derives from Exception This macro is typically used in a header file.
| NAME | The name of the new class (Exception will be postfixed) |
| LINKAGE_SPEC | the linkage specifier. If the BLOCXX_DEFINE_EXCEPTION is part of libblocxx this would BLOCXX_COMMON_API... |
Definition at line 396 of file Exception.hpp.
| #define BLOCXX_DECLARE_APIEXCEPTION2 | ( | NAME, | |
| BASE, | |||
| LINKAGE_SPEC | |||
| ) |
Declare a new exception class named <NAME>Exception that derives from <BASE>.
This macro is typically used in a header file. The exception class declaration will be prefaced with the linkage_spec parm. This allows the use of BLOCXX_COMMON_API when declaring exceptions. Example: BLOCXX_DECLARE_APIEXCEPTION(Bogus, MYException, BLOCXX_COMMON_API)
| NAME | The name of the new class (Exception will be postfixed) |
| BASE | The base class. |
| LINKAGE_SPEC | The linkage specifier for the exception class. |
Definition at line 366 of file Exception.hpp.
| #define BLOCXX_DECLARE_EXCEPTION | ( | NAME | ) | BLOCXX_DECLARE_EXCEPTION2(NAME, ::BLOCXX_NAMESPACE::Exception) |
Declare a new exception class named <NAME>Exception that derives from Exception This macro is typically used in a header file.
| NAME | The name of the new class (Exception will be postfixed) |
Definition at line 386 of file Exception.hpp.
| #define BLOCXX_DECLARE_EXCEPTION2 | ( | NAME, | |
| BASE | |||
| ) |
Declare a new exception class named <NAME>Exception that derives from <BASE>.
This macro is typically used in a header file.
| NAME | The name of the new class (Exception will be postfixed) |
| BASE | The base class. |
Definition at line 344 of file Exception.hpp.
| #define BLOCXX_DEFINE_EXCEPTION | ( | NAME | ) | BLOCXX_DEFINE_EXCEPTION_WITH_BASE_AND_ID_AUX(NAME, ::BLOCXX_NAMESPACE::Exception, ::BLOCXX_NAMESPACE::Exception::UNKNOWN_SUBCLASS_ID) |
Define a new exception class named <NAME>Exception that derives from Exception.
The new class will use UNKNOWN_SUBCLASS_ID for the subclass id. Use this macro for internal implementation exceptions that don't have an id. This macro is typically used in a cpp file.
| NAME | The name of the new class (Exception will be postfixed) |
Definition at line 439 of file Exception.hpp.
| #define BLOCXX_DEFINE_EXCEPTION2 | ( | NAME, | |
| BASE | |||
| ) |
Define a new exception class named <NAME>Exception that derives from <BASE>.
The new class will use UNKNOWN_SUBCLASS_ID for the subclass id. This macro is typically used in a cpp file.
| NAME | The name of the new class (Exception will be postfixed) |
| BASE | The base class. |
Definition at line 406 of file Exception.hpp.
| #define BLOCXX_DEFINE_EXCEPTION_WITH_BASE_AND_ID | ( | NAME, | |
| BASE | |||
| ) | BLOCXX_DEFINE_EXCEPTION_WITH_BASE_AND_ID_AUX(NAME, BASE, ::BLOCXX_NAMESPACE::ExceptionIds::NAME##ExceptionId) |
Define a new exception class named <NAME>Exception that derives from <BASE>.
The new class will use ExceptionIds::<NAME>ExceptionId for the subclass id. Use this macro to create public exceptions that have an id in the BLOCXX_NAMESPACE::ExceptionIds namespace that will derive from BASE This macro is typically used in a cpp file.
| NAME | The name of the new class (Exception will be postfixed) |
| BASE | The base class. |
Definition at line 460 of file Exception.hpp.
| #define BLOCXX_DEFINE_EXCEPTION_WITH_BASE_AND_ID_AUX | ( | NAME, | |
| BASE, | |||
| SUB_CLASS_ID | |||
| ) |
Define a new exception class named <NAME>Exception that derives from <BASE>.
The new class will use SUB_CLASS_ID for the subclass id. This macro is typically used in a cpp file.
| NAME | The name of the new class (Exception will be postfixed) |
| BASE | The base class. |
| SUB_CLASS_ID | The subclass id. |
Definition at line 423 of file Exception.hpp.
| #define BLOCXX_DEFINE_EXCEPTION_WITH_ID | ( | NAME | ) | BLOCXX_DEFINE_EXCEPTION_WITH_BASE_AND_ID_AUX(NAME, ::BLOCXX_NAMESPACE::Exception, ::BLOCXX_NAMESPACE::ExceptionIds::NAME##ExceptionId) |
Define a new exception class named <NAME>Exception that derives from Exception.
The new class will use ExceptionIds::<NAME>ExceptionId for the subclass id. Use this macro to create public exceptions that have an id in the BLOCXX_NAMESPACE::ExceptionIds namespace that derive from Exception This macro is typically used in a cpp file.
| NAME | The name of the new class (Exception will be postfixed) |
Definition at line 449 of file Exception.hpp.
| #define BLOCXX_THROW | ( | exType, | |
| msg | |||
| ) | throw exType(__FILE__, __LINE__, (msg)) |
Throw an exception using FILE and LINE.
If applicable, BLOCXX_THROW_ERR should be used instead of this macro.
| exType | The type of the exception |
| msg | The exception message. A string that will be copied. |
Definition at line 263 of file Exception.hpp.
| #define BLOCXX_THROW_ERR | ( | exType, | |
| msg, | |||
| err | |||
| ) | throw exType(__FILE__, __LINE__, (msg), (err)) |
Throw an exception using FILE and LINE.
| exType | The type of the exception |
| msg | The exception message. A string that will be copied. |
| err | The error code. |
Definition at line 287 of file Exception.hpp.
| #define BLOCXX_THROW_ERR_SUBEX | ( | exType, | |
| msg, | |||
| err, | |||
| subex | |||
| ) | throw exType(__FILE__, __LINE__, (msg), (err), &(subex)) |
Throw an exception using FILE and LINE.
| exType | The type of the exception |
| msg | The exception message. A string that will be copied. |
| err | The error code. |
| subex | A sub-exception. A point to it will be passed to the exception constructor, which should clone() it. |
Definition at line 334 of file Exception.hpp.
| #define BLOCXX_THROW_ERRNO | ( | exType | ) | BLOCXX_THROW_ERRNO1(exType, errno) |
Throw an exception using FILE, LINE, errno and strerror(errno)
| exType | The type of the exception; ctor must take file, line, message, and error code. |
Definition at line 295 of file Exception.hpp.
| #define BLOCXX_THROW_ERRNO1 | ( | exType, | |
| errnum | |||
| ) | throw ::BLOCXX_NAMESPACE::ExceptionDetail::Errno< exType >::simple(__FILE__, __LINE__, (errnum)) |
Throw an exception using FILE, LINE, errnum and strerror(errnum)
| exType | The type of the exception; ctor must take file, line, message, and error code. |
| errnum | The errno value. |
Definition at line 303 of file Exception.hpp.
| #define BLOCXX_THROW_ERRNO_MSG | ( | exType, | |
| msg | |||
| ) | BLOCXX_THROW_ERRNO_MSG1(exType, (msg), errno) |
Throw an exception using FILE, LINE, errno and strerror(errno)
| exType | The type of the exception; ctor must take file, line, message, and error code. |
| msg | The exception message to use. |
Definition at line 312 of file Exception.hpp.
| #define BLOCXX_THROW_ERRNO_MSG1 | ( | exType, | |
| msg, | |||
| errnum | |||
| ) |
Throw an exception using FILE, LINE, errnum and strerror(errnum)
| exType | The type of the exception; ctor must take file, line, message, and error code. |
| msg | The exception message to use. |
| errnum | The errno value. |
Definition at line 322 of file Exception.hpp.
| #define BLOCXX_THROW_SUBEX | ( | exType, | |
| msg, | |||
| subex | |||
| ) |
Throw an exception using FILE and LINE.
| exType | The type of the exception |
| msg | The exception message. A string that will be copied. |
| subex | A sub-exception. A pointer to it will be passed to the exception constructor, which should clone() it. |
Definition at line 277 of file Exception.hpp.
| #define BLOCXX_THROWL | ( | exType, | |
| line, | |||
| msg | |||
| ) | throw exType(__FILE__, (line), (msg)) |
This macro is deprecated in 3.1.0.
Definition at line 268 of file Exception.hpp.