X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=include%2Fanna%2Fdbms%2FDatabaseException.hpp;fp=include%2Fanna%2Fdbms%2FDatabaseException.hpp;h=66bccee85d3fde2d195060e04f0e5db92acda71d;hb=78be86969d2f26a9084b0c4af6ce43d5fa4ed3fd;hp=0000000000000000000000000000000000000000;hpb=a3b95648bd76140ef55e0b5941d423eee6c3856f;p=anna.git diff --git a/include/anna/dbms/DatabaseException.hpp b/include/anna/dbms/DatabaseException.hpp new file mode 100644 index 0000000..66bccee --- /dev/null +++ b/include/anna/dbms/DatabaseException.hpp @@ -0,0 +1,76 @@ +// ANNA - Anna is Not Nothingness Anymore // +// // +// (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo // +// // +// See project site at http://redmine.teslayout.com/projects/anna-suite // +// See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE // + + +#ifndef anna_dbms_DatabaseException_hpp +#define anna_dbms_DatabaseException_hpp + +#include + +#include + +namespace anna { + +namespace dbms { + +/** + Exception ocurrida al acceder a algun servicio de la base de datos. +*/ +class DatabaseException : public Exception { +public: + /** + Constructor. + + @param resultCode Clase utilizada para transferir codigo de error entre el gestor de base de datos + y nuestro programa. Entre otra informacion contiene el error ocurrido en la ultima operacion realizada. + @param fromFile Fichero en el que se provoco la situacion de error. + @param fromLine Linea del fichero en la que se provoco la situacion de error. + */ + DatabaseException(const ResultCode& resultCode, const char* fromFile, const int fromLine) : + Exception(resultCode.getErrorText(), "DatabaseException", fromFile, fromLine), + a_resultCode(resultCode) {} + + /** + Constructor. + + @param logicalName Nombre logico del elemento que genera la excepcion. + @param resultCode Clase utilizada para transferir codigo de error entre el gestor de base de datos + y nuestro programa. Entre otra informacion contiene el error ocurrido en la ultima operacion realizada. + @param fromFile Fichero en el que se provoco la situacion de error. + @param fromLine Linea del fichero en la que se provoco la situacion de error. + */ + DatabaseException(const std::string& logicalName, const ResultCode& resultCode, const char* fromFile, const int fromLine) : + Exception("", "DatabaseException", fromFile, fromLine), + a_resultCode(resultCode) { + std::string aux(logicalName); + aux += ": "; + aux += resultCode.getErrorText(); + setText(aux.c_str()); + } + + /** + Destructor. + */ + virtual ~DatabaseException() throw() {;} + + /** + Devuelve el resultado de base de datos asociado a la excepcion + + @return El resultado de base de datos asociado a la excepcion + */ + const ResultCode& getResultCode() const throw() { return a_resultCode; } + +private: + const ResultCode a_resultCode; +}; + +} +} + + +#endif +