Initial commit.

This commit is contained in:
2018-12-06 16:01:56 +01:00
parent 10867b60c2
commit 18eb3f6047
1011 changed files with 345688 additions and 10 deletions

155
src/commons/Exception.hh Normal file
View File

@@ -0,0 +1,155 @@
/*******************************************************************************
* Copyright (c) 2015-2016 ONERA.
* Ce logiciel est la propriété de lONERA (the French Aerospace Lab).
* Tous droits réservés.
*
* Ce programme et les éléments qui l'accompagnent sont mis à disposition
* aux conditions définies par le contrat de licence logiciel CeCILL-C soumise
* au droit français et respectant les principes de diffusion des logiciels libres.
* Vous pouvez utiliser, modifier et/ou redistribuer ce programme
* sous les conditions de la licence CeCILL-C (http://www.cecill.info).
* This software is property of ONERA (the French Aerospace Lab).
* All rights reserved.
*
* This program and the accompanying materials are made available under
* the terms of the CeCILL-C license under French law and
* abiding by the rules of distribution of free software.
* You can use, modify and/ or redistribute the software under the terms of
* the CeCILL-C license (http://www.cecill.info).
*
* Contributeurs/contributors:
* Guillaume Infantes (ONERA - Centre de Toulouse) - initial API and implementation
*
*******************************************************************************/
// This program 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.
//
// This program 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 Library General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// Copyright Florent Teichteil-Koenigsbuch (2008)
#ifndef EXCEPTION_H_
#define EXCEPTION_H_
#include <exception>
#include <string>
namespace epoch {
class Exception : public std::exception
{
protected :
std::string error_message_;
std::string function_backtrace_;
mutable std::string what_message_;
public :
Exception(std::string const & error_message, std::string const & throwing_function = "");
virtual ~Exception() throw();
virtual const char * what() const throw();
virtual void push_function_backtrace(std::string const & throwing_function);
virtual void clear_function_backtrace();
};
class ParserException : public Exception
{
public :
ParserException(std::string const & error_message, std::string const & throwing_function = "");
virtual ~ParserException() throw();
};
class RequirementException : public ParserException
{
public :
RequirementException(std::string const & error_message, std::string const & throwing_function = "");
virtual ~RequirementException() throw();
};
class OverflowException : public Exception
{
public :
OverflowException(std::string const & error_message, std::string const & throwing_function = "");
virtual ~OverflowException() throw();
};
class NumericException : public Exception
{
public :
NumericException(std::string const & error_message, std::string const & throwing_function = "");
virtual ~NumericException() throw();
};
class RedundancyException : public Exception
{
public :
RedundancyException(std::string const & error_message, std::string const & throwing_function = "");
virtual ~RedundancyException() throw();
};
class CloneException : public Exception
{
public :
CloneException(std::string const & error_message, std::string const & throwing_function = "");
virtual ~CloneException() throw();
};
class LearnerException : public Exception
{
public :
LearnerException(std::string const & error_message, std::string const & throwing_function = "");
virtual ~LearnerException() throw();
};
class UndecidableException : public LearnerException
{
public :
UndecidableException(std::string const & error_message, std::string const & throwing_function = "");
virtual ~UndecidableException() throw();
};
class PlannerException : public Exception
{
public :
PlannerException(std::string const & error_message, std::string const & throwing_function = "");
virtual ~PlannerException() throw();
};
class TimeOutException : public PlannerException
{
public :
TimeOutException(std::string const & error_message, std::string const & throwing_function = "");
virtual ~TimeOutException() throw();
};
class IncompatibilityException : public Exception
{
public :
IncompatibilityException(std::string const & error_message, std::string const & throwing_function = "");
virtual ~IncompatibilityException() throw();
};
}
#endif /*EXCEPTION_H_*/