1 // ANNA - Anna is Not Nothingness Anymore //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
9 #ifndef anna_core_Exception_hpp
10 #define anna_core_Exception_hpp
18 Excepcion generica usada en las aplicaciones functions.
20 class Exception : public std::exception {
23 * Normaliza las acciones que puede tomar un método a la hora de configurar
24 * el tratamiento de errores/excepciones.
26 struct Mode { enum _v { Ignore, Throw, Trace }; };
30 @param text Texto explicativo de la excepcion.
31 @param fromFile Fichero en el que se provoco la situacion de error.
32 @param fromLine Linea del fichero en la que se detecto el error.
34 Exception(const char* text, const char* fromFile, const int fromLine);
39 @param other Instancia de la una excepcion a partir de la que vamos a obtener los datos.
41 Exception(const Exception& other);
46 virtual ~Exception() throw() {;}
50 @return Devuelve el texto explicativo asociado a esta excepcion.
52 const std::string& getText() const throw() { return m_text;}
55 @return El nombre del fichero donde se genero la excepcion. Coincidira con el indicado
58 const char* getFromFile() const { return m_fromFile.c_str(); }
61 @return La linea del fichero donde se genero la excepcion. Coincidira con la indicada
64 int getFromLine() const throw() { return m_fromLine; }
67 Establecer un codigo de error asociado a esta excepcion.
69 @param errorCode Valor a establecer. El significado de este error dependera de la
70 interpretacion particular que queramos darle en nuestra aplicacion.
72 void setErrorCode(const int errorCode) throw() { m_errorCode = errorCode; }
75 @return El codigo de error asociado a esta excepcion.
77 int getErrorCode() const throw() { return m_errorCode; }
83 @param right Instancia de la excepcion de la que vamos a obtener los datos.
85 @return Referencia a esta instancia.
87 Exception& operator = (const Exception& right) throw();
91 Devuelve una cadena conteniendo toda la informacion referente a la excepcion
92 en un formato que sea facil de interpretar.
94 @return Instancia de la cadena conteniendo la informacion de la excepcion.
96 std::string asString() const throw();
99 Devuelve una cadena conteniendo toda la informacion referente a la excepcion
100 en un formato que sea facil de interpretar.
102 Sobreescribe el metodo de la clase base.
104 @return Puntero a la cadena conteniendo la informacion de la excepcion.
106 const char* what() const throw() { return asString().c_str(); } // JASC, 23/9/2003 antes dAata() ( no tenia el trailing null )
109 Saca una traza de error en el fichero de log con el texto asociado a este excepcion.
114 void trace() const throw();
117 Exception(const char* text, const char* name, const char* fromFile, const int fromLine);
120 Establece el texto asociado a esta excepcion.
122 @param text Nuevo texto asociado a esta excepcion.
124 void setText(const char* text) throw() { m_text = text; }
127 Establece el texto asociado a esta excepcion.
129 @param text Nuevo texto asociado a esta excepcion.
131 void setText(const std::string& text) throw() { m_text = text; }
136 std::string m_fromFile;