SuperSpaceInvaderTurboApoca.../lib_headers/mingl/exception/cexception.h
2021-12-13 09:08:31 +01:00

99 lines
2.1 KiB
C++
Executable File

/**
*
* @file cexception.h
*
* @authors M. Laporte, D. Mathieu
*
* @date 23/03/2010
*
* @version V1.0
*
* @brief Declaration de la classe CException
*
* @version V1.1
*
* @author Alexandre Sollier
*
* @brief Ajout de la documentation
*
**/
#ifndef CEXCEPTION_H
#define CEXCEPTION_H
#include <string>
#include <iostream>
#include <exception>
#include "../tools/ieditable.h"
#include "errcode.h"
/**
* @namespace nsException
* @brief Espace de nom pour la gestion d'exceptions
*/
namespace nsException
{
/**
* @class CException
* @brief Classe pour créer des exceptions facilement
*/
class CException : public std::exception, public nsUtil::IEditable
{
public :
/**
* @brief Constructeur pour la classe CException
* @param[in] Libelle : Libellé de l'exception
* @param[in] CodErr : Code erreur de l'exception
* @fn CException(const std::string& Libelle = std::string(), const unsigned CodErr = KNoExc);
*/
CException(const std::string& Libelle = std::string(), const unsigned CodErr = KNoExc);
/**
* @brief Destructeur virtuel pour la classe CException
* @fn virtual ~CException() override = default;
*/
virtual ~CException() override = default;
/**
* @brief Récupère le libellé de l'exception
* @fn const std::string& GetLibelle() const;
*/
const std::string& GetLibelle() const;
/**
* @brief Récupère le code erreur de l'exception
* @fn unsigned GetCodErr() const;
*/
unsigned GetCodErr() const;
/**
* @brief Retourne une chaine de caractère C décrivant l'exception
* @fn virtual const char* what() const noexcept override;
*/
virtual const char* what() const noexcept override;
protected :
virtual std::ostream& _Edit(std::ostream& os = std::cerr) const override;
/**
* @brief m_Libelle : Libellé de l'exception
*/
std::string m_Libelle;
/**
* @brief m_CodErr : Code erreur de l'exception
*/
unsigned m_CodErr;
}; // class CException
} // namespace nsException
#include "cexception.hpp"
#endif // CEXCEPTION_H