bes  Updated for version 3.17.0
BESDapError Class Reference

error object created from libdap error objects and can handle those errors More...

#include <BESDapError.h>

Inheritance diagram for BESDapError:
Inheritance graph

Public Member Functions

 BESDapError (const string &s, bool fatal, libdap::ErrorCode ec, const string &file, int line)
 
virtual void dump (ostream &strm) const
 dumps information about this object More...
 
virtual int get_error_code () const
 
virtual int get_error_type ()
 Return the return code for this error class. More...
 
virtual std::string get_file ()
 get the file name where the exception was thrown More...
 
virtual int get_line ()
 get the line number where the exception was thrown More...
 
virtual std::string get_message ()
 get the error message for this exception More...
 
virtual void set_error_type (int type)
 Set the return code for this particular error class. More...
 
virtual void set_message (const std::string &msg)
 set the error message for this exception More...
 

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 More...
 
static int handleException (BESError &e, BESDataHandlerInterface &dhi)
 handles exceptions if the error context is set to dap2 More...
 

Protected Attributes

std::string _file
 
unsigned int _line
 
std::string _msg
 
unsigned int _type
 

Detailed Description

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.

Member Function Documentation

int BESDapError::convert_error_code ( int  error_code,
int  current_error_type 
)
static

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.

Parameters
error_codeThe libdap error code to convert
current_error_typeThe current error type of the exception
Returns
BES error type used in any error response

Definition at line 64 of file BESDapError.cc.

void BESDapError::dump ( ostream &  strm) const
virtual

Displays the pointer value of this instance and the stored error code

Parameters
strmC++ i/o stream to dump the information to

Reimplemented from BESError.

Definition at line 152 of file BESDapError.cc.

References BESError::dump().

virtual int BESError::get_error_type ( )
inlinevirtualinherited

Returns the return code for this error class, which could represent the need to terminate or do something specific base on the error

Returns
context string

Definition at line 138 of file BESError.h.

References BESError::dump().

virtual std::string BESError::get_file ( )
inlinevirtualinherited
Returns
file name

Definition at line 105 of file BESError.h.

virtual int BESError::get_line ( )
inlinevirtualinherited
Returns
line number

Definition at line 113 of file BESError.h.

virtual std::string BESError::get_message ( )
inlinevirtualinherited
Returns
error message

Definition at line 97 of file BESError.h.

int BESDapError::handleException ( BESError e,
BESDataHandlerInterface dhi 
)
static

If the error context from the BESContextManager is set to dap2 then handle all exceptions by returning transmitting them as dap2 error messages.

Parameters
eexception to be handled
dhistructure that holds request and response information

Definition at line 109 of file BESDapError.cc.

References convert_error_code(), BESDataHandlerInterface::error_info, BESContextManager::get_context(), BESError::get_error_type(), BESError::get_message(), BESError::set_error_type(), and BESError::set_message().

virtual void BESError::set_error_type ( int  type)
inlinevirtualinherited

Sets the return code for this error class, which could represent the need to terminate or do something specific based on the error.

Parameters
typethe 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 127 of file BESError.h.

virtual void BESError::set_message ( const std::string &  msg)
inlinevirtualinherited
Parameters
msgmessage string

Definition at line 89 of file BESError.h.


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