xapian-core  1.4.25
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
Xapian::Error Class Reference

All exceptions thrown by Xapian are subclasses of Xapian::Error. More...

#include <error.h>

+ Inheritance diagram for Xapian::Error:
+ Collaboration diagram for Xapian::Error:

Public Member Functions

const char * get_type () const
 The type of this error (e.g. "DocNotFoundError".) More...
 
const std::string & get_msg () const
 Message giving details of the error, intended for human consumption. More...
 
const std::string & get_context () const
 Optional context information. More...
 
const char * get_error_string () const
 Returns any system error string associated with this exception. More...
 
std::string get_description () const
 Return a string describing this object. More...
 

Private Member Functions

void operator= (const Error &o)
 Don't allow assignment of the base class. More...
 
 Error (const std::string &msg_, const std::string &context_, const char *type_, const char *error_string_)
 Constructor for use by constructors of derived classes. More...
 
 Error (const std::string &msg_, const std::string &context_, const char *type_, int errno_)
 Constructor for use by constructors of derived classes. More...
 

Private Attributes

std::string msg
 Message giving details of the error, intended for human consumption. More...
 
std::string context
 Optional context information. More...
 
std::string error_string
 The error string derived from my_errno. More...
 
const char * type
 The type of this error (e.g. DocNotFoundError.) More...
 
int my_errno
 Optional value of 'errno' associated with this error. More...
 
bool already_handled
 True if this error has already been passed to an ErrorHandler. More...
 

Friends

class ErrorHandler
 

Detailed Description

All exceptions thrown by Xapian are subclasses of Xapian::Error.

This class can not be instantiated directly - instead a subclass should be used.

Definition at line 43 of file error.h.

Constructor & Destructor Documentation

◆ Error() [1/2]

Xapian::Error::Error ( const std::string &  msg_,
const std::string &  context_,
const char *  type_,
const char *  error_string_ 
)
private

Constructor for use by constructors of derived classes.

Definition at line 41 of file error.cc.

References error_string.

◆ Error() [2/2]

Xapian::Error::Error ( const std::string &  msg_,
const std::string &  context_,
const char *  type_,
int  errno_ 
)
inlineprivate

Constructor for use by constructors of derived classes.

Definition at line 101 of file error.h.

Member Function Documentation

◆ get_context()

const std::string& Xapian::Error::get_context ( ) const
inline

Optional context information.

This context is intended for use by Xapian::ErrorHandler (for example so it can know which remote server is unreliable and report the problem and remove that server from those being searched). But it's typically a plain-text string, and so also fit for human consumption.

Definition at line 133 of file error.h.

Referenced by serialise_error().

◆ get_description()

string Xapian::Error::get_description ( ) const

◆ get_error_string()

const char * Xapian::Error::get_error_string ( ) const

Returns any system error string associated with this exception.

The system error string may come from errno, h_errno (on UNIX), or GetLastError() (on MS Windows). If there is no associated system error string, NULL is returned.

Definition at line 50 of file error.cc.

References errno_to_string(), error_string, my_errno, and Xapian::Internal::str().

Referenced by DEFINE_TESTCASE(), get_description(), RemoteTcpClient::open_socket(), test_driver::runtest(), serialise_error(), test_ioblock1(), and test_serialiseerror1().

◆ get_msg()

const std::string& Xapian::Error::get_msg ( ) const
inline

◆ get_type()

const char* Xapian::Error::get_type ( ) const
inline

The type of this error (e.g. "DocNotFoundError".)

Definition at line 117 of file error.h.

Referenced by get_description(), test_driver::runtest(), and serialise_error().

◆ operator=()

void Xapian::Error::operator= ( const Error o)
private

Don't allow assignment of the base class.

Friends And Related Function Documentation

◆ ErrorHandler

friend class ErrorHandler
friend

Definition at line 45 of file error.h.

Member Data Documentation

◆ already_handled

bool Xapian::Error::already_handled
private

True if this error has already been passed to an ErrorHandler.

Definition at line 86 of file error.h.

Referenced by Xapian::ErrorHandler::operator()().

◆ context

std::string Xapian::Error::context
private

Optional context information.

This context is intended for use by Xapian::ErrorHandler (for example so it can know which remote server is unreliable and report the problem and remove that server from those being searched). But it's typically a plain-text string, and so also fit for human consumption.

Definition at line 57 of file error.h.

Referenced by get_description().

◆ error_string

std::string Xapian::Error::error_string
mutableprivate

The error string derived from my_errno.

This string is generated from my_errno lazily.

Definition at line 63 of file error.h.

Referenced by Error(), and get_error_string().

◆ msg

std::string Xapian::Error::msg
private

Message giving details of the error, intended for human consumption.

Definition at line 48 of file error.h.

Referenced by get_description().

◆ my_errno

int Xapian::Error::my_errno
private

Optional value of 'errno' associated with this error.

If no value is associated, this member variable will be 0.

On UNIX, if this value is < 0, it's an error code returned from getaddrinfo() (negated if such error codes are positive).

On Windows, if this value is < 0, it's a negated Windows error code (as given by GetLastError()), while if it is >= WSABASEERR then it is a WinSock error code (as given by WSAGetLastError()). Prior to Xapian 1.2.20 and 1.3.3, WSAGetLastError() codes were also negated.

NB We don't just call this member "errno" to avoid problems on platforms where errno is a preprocessor macro.

Definition at line 83 of file error.h.

Referenced by get_error_string().

◆ type

const char* Xapian::Error::type
private

The type of this error (e.g. DocNotFoundError.)

Definition at line 66 of file error.h.


The documentation for this class was generated from the following files: