X-Git-Url: http://git.home-dn.net/?p=manu%2Fsuphp.git;a=blobdiff_plain;f=src%2FException.hpp;fp=src%2FException.hpp;h=7906b7020e66b7fb5851329add07f3b6251c6ea4;hp=0000000000000000000000000000000000000000;hb=873afb00229b8e205345b6895eaad6602d5e10f4;hpb=728a5b3f000f892e52ecea98fcc8f0c5d7275b7b diff --git a/src/Exception.hpp b/src/Exception.hpp new file mode 100644 index 0000000..7906b70 --- /dev/null +++ b/src/Exception.hpp @@ -0,0 +1,81 @@ +/* + suPHP - (c)2002-2005 Sebastian Marsching + + This file is part of suPHP. + + suPHP is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + suPHP is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with suPHP; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef SUPHP_EXCEPTION_H + +namespace suPHP { + class Exception; +}; + +#define SUPHP_EXCEPTION_H + +#include +#include + +namespace suPHP { + /** + * Parent class for exceptions. + * All exceptions are derived from this class. + */ + class Exception { + private: + std::string message; + std::string backtrace; + int line; + std::string file; + virtual std::string getName() const =0; + + public: + /** + * Constructor without message. + */ + Exception(std::string file, int line); + + /** + * Constructor with message. + */ + Exception(std::string message, std::string file, int line); + + /** + * Constructor without message but with cause. + */ + Exception(Exception& cause, std::string file, int line); + + /** + * Constructor with message and cause. + */ + Exception(std::string message, Exception& cause, std::string file, int line); + + /** + * Get the message + */ + std::string getMessage(); + + /** + * Get string representing the exception + */ + std::string toString() const; + }; + +std::ostream& operator<<(std::ostream& os, const Exception& e); + +}; + +#endif // SUPHP_EXCEPTION_H