error object created from libdap error objects and can handle those errors More...
#include <BESDapError.h>
Public Member Functions | |
BESDapError (const string &s, bool fatal, ErrorCode ec, const string &file, int line) | |
virtual void | dump (ostream &strm) const |
dumps information about this object | |
virtual int | get_error_code () const |
virtual int | get_error_type () |
Return the return code for this error class. | |
virtual string | get_file () |
get the file name where the exception was thrown | |
virtual int | get_line () |
get the line number where the exception was thrown | |
virtual string | get_message () |
get the error message for this exception | |
virtual void | set_error_type (int type) |
Set the return code for this particular error class. | |
virtual void | set_message (const string &msg) |
set the error message for this exception | |
virtual | ~BESDapError () |
Static Public Member Functions | |
static int | convert_error_code (int error_code, int current_error_type) |
converts the libdap error code to the bes error type | |
static int | handleException (BESError &e, BESDataHandlerInterface &dhi) |
handles exceptions if the error context is set to dap2 | |
Protected Member Functions | |
BESDapError () | |
Protected Attributes | |
string | _file |
unsigned int | _line |
string | _msg |
unsigned int | _type |
error object created from libdap error objects and can handle those errors
The BESDapError is an error object that is created from libdap error objects caught during libdap processing.
The exception handling function handleException knows how to convert libdap errors to dap error responses if the context is set to dap2
Definition at line 51 of file BESDapError.h.
BESDapError::BESDapError | ( | ) | [inline, protected] |
Definition at line 56 of file BESDapError.h.
BESDapError::BESDapError | ( | const string & | s, | |
bool | fatal, | |||
ErrorCode | ec, | |||
const string & | file, | |||
int | line | |||
) | [inline] |
Definition at line 58 of file BESDapError.h.
References BES_INTERNAL_ERROR, and BES_INTERNAL_FATAL_ERROR.
virtual BESDapError::~BESDapError | ( | ) | [inline, virtual] |
Definition at line 71 of file BESDapError.h.
int BESDapError::convert_error_code | ( | int | error_code, | |
int | current_error_type | |||
) | [static] |
converts the libdap error code to the bes error type
This functions converts the libdap error codes in Error to the proper BES error type.
undefined_error 1000 -> BES_INTERNAL_ERROR unknown_error 1001 -> BES_INTERNAL_ERROR internal_error 1002 -> BES_INTERNAL_FATAL_ERROR no_such_file 1003 -> BES_NOT_FOUND_ERROR no_such_variable 1004 -> BES_SYNTAX_USER_ERROR malformed_expr 1005 -> BES_SYNTAX_USER_ERROR no_authorization 1006 -> BES_FORBIDDEN_ERROR cannot_read_file 1007 -> BES_FORBIDDEN_ERROR dummy_message 1008 -> BES_FORBIDDEN_ERROR
If the error type is already set to BES_INTERNAL_FATAL_ERROR it is not changed.
error_code | The libdap error code to convert | |
current_error_type | The current error type of the exception |
Definition at line 65 of file BESDapError.cc.
References BES_INTERNAL_FATAL_ERROR.
Referenced by handleException().
void BESDapError::dump | ( | ostream & | strm | ) | const [virtual] |
dumps information about this object
Displays the pointer value of this instance and the stored error code
strm | C++ i/o stream to dump the information to |
Reimplemented from BESError.
Definition at line 169 of file BESDapError.cc.
References get_error_code(), BESIndent::Indent(), BESIndent::LMarg(), and BESIndent::UnIndent().
virtual int BESDapError::get_error_code | ( | ) | const [inline, virtual] |
Definition at line 72 of file BESDapError.h.
Referenced by dump(), and handleException().
virtual int BESError::get_error_type | ( | ) | [inline, virtual, inherited] |
Return the return code for this error class.
Returns the return code for this error class, which could represent the need to terminate or do something specific base on the error
Definition at line 120 of file BESError.h.
References BESError::_type.
Referenced by BESInfo::add_exception(), BESApacheInterface::exception_manager(), BESExceptionManager::handle_exception(), and handleException().
virtual string BESError::get_file | ( | ) | [inline, virtual, inherited] |
get the file name where the exception was thrown
Definition at line 96 of file BESError.h.
References BESError::_file.
Referenced by BESInfo::add_exception().
virtual int BESError::get_line | ( | ) | [inline, virtual, inherited] |
get the line number where the exception was thrown
Definition at line 101 of file BESError.h.
References BESError::_line.
Referenced by BESInfo::add_exception().
virtual string BESError::get_message | ( | ) | [inline, virtual, inherited] |
get the error message for this exception
Definition at line 91 of file BESError.h.
References BESError::_msg.
Referenced by BESInfo::add_exception(), BESMemoryGlobalArea::BESMemoryGlobalArea(), BESServerHandler::BESServerHandler(), PPTClient::closeConnection(), BESApacheInterface::exception_manager(), BESInterface::finish(), handleException(), PPTClient::initConnection(), StandAloneApp::initialize(), ServerApp::initialize(), BESModuleApp::initialize(), BESBaseApp::initialize(), main(), StandAloneApp::run(), ServerApp::run(), CmdApp::run(), BESModuleApp::terminate(), and CmdTranslation::translate().
int BESDapError::handleException | ( | BESError & | e, | |
BESDataHandlerInterface & | dhi | |||
) | [static] |
handles exceptions if the error context is set to dap2
If the error context from the BESContextManager is set to dap2 then handle all exceptions by returning transmitting them as dap2 error messages.
e | exception to be handled | |
dhi | structure that holds request and response information |
Definition at line 119 of file BESDapError.cc.
References convert_error_code(), BESDataHandlerInterface::error_info, BESContextManager::get_context(), get_error_code(), BESError::get_error_type(), BESError::get_message(), BESError::set_error_type(), BESError::set_message(), and BESContextManager::TheManager().
Referenced by BESDapModule::initialize().
virtual void BESError::set_error_type | ( | int | type | ) | [inline, virtual, inherited] |
Set the return code for this particular error class.
Sets the return code for this error class, which could represent the need to terminate or do something specific based on the error.
type | the type of error this error object represents. Can be one of BES_INTERNAL_ERROR, BES_INTERNAL_FATAL_ERROR, BES_SYNTAX_USER_ERROR, BES_FORBIDDEN_ERROR, BES_NOT_FOUND_ERROR |
Definition at line 112 of file BESError.h.
References BESError::_type.
Referenced by handleException(), and BESApacheInterface::validate_data_request().
virtual void BESError::set_message | ( | const string & | msg | ) | [inline, virtual, inherited] |
set the error message for this exception
msg | message string |
Definition at line 86 of file BESError.h.
References BESError::_msg.
Referenced by handleException().
string BESError::_file [protected, inherited] |
Definition at line 56 of file BESError.h.
Referenced by BESError::dump(), and BESError::get_file().
unsigned int BESError::_line [protected, inherited] |
Definition at line 57 of file BESError.h.
Referenced by BESError::dump(), and BESError::get_line().
string BESError::_msg [protected, inherited] |
Definition at line 54 of file BESError.h.
Referenced by BESError::BESError(), BESError::dump(), BESError::get_message(), and BESError::set_message().
unsigned int BESError::_type [protected, inherited] |
Definition at line 55 of file BESError.h.
Referenced by BESError::dump(), BESError::get_error_type(), and BESError::set_error_type().