*
* Full author contact details are available in file CREDITS.
*
- * A store of the paths to the various different directoies used
- * by LyX. These paths differ markedly from one OS to another,
- * following the local Windows, MacOS X or Posix conventions.
*/
#ifndef LYX_MESSAGE_H
#define LYX_MESSAGE_H
namespace lyx {
namespace support {
+/// LyX support three types of custom exceptions. In order of
+/// increasing seriousness, these are:
+///
+/// WarningException
+/// Intended for unexpected situations that we do not expect
+/// to compromise further operation. It has the effect of
+/// aborting whatever operation in in process.
+///
+/// BufferException
+/// Intended for situations that indicate some problem with a
+/// Buffer or its related data structures. The Buffer will be
+/// closed, in emergency style.
+///
+/// ErrorException
+/// Intended for situations that indicate a global problem
+/// with the program. It will lead to an emergency shutdown.
enum ExceptionType {
ErrorException,
+ BufferException,
WarningException
};
ExceptionMessage(ExceptionType type, docstring const & title,
docstring const & details)
: type_(type), title_(title), details_(details),
- message_(to_utf8(title_ + '\n' + details_)) {}
+ message_(to_utf8(title_ + docstring::value_type('\n') + details_)) {}
virtual const char * what() const throw() { return message_.c_str(); }
virtual ~ExceptionMessage() throw() {}