#ifndef CRUNTIMEEXCEPTION_HPP
#define CRUNTIMEEXCEPTION_HPP

#include "CException.hpp"

#include <exception>
#include <string>

/**
 * @file CRuntimeException.hpp
 * @brief File of CRuntimeException, a class to handle program runtime exception.
 */

/**
 * @def LOGIC_EXC_CODE default code for this kind of Exception.
 */
#define RUNTIME_EXC_CODE 2

/**
 * @brief Class to handle program file exception.
 */
class CRuntimeException : public CException {

private:

public:
	/**
	 * @brief The default constructor, build a exception with default message : "A runtime error occurred" and the code RUNTIME_EXC_CODE.
	 */
	CRuntimeException(void) noexcept;

	/**
	 * @brief The usage constructor, build a exception with a given message and the code RUNTIME_EXC_CODE.
	 * @param[in] message The wanted message.
	 */
	CRuntimeException(const std::string message) noexcept;

};

#endif