#ifndef CLIBEXCEPTION_HPP
#define CLIBEXCEPTION_HPP

#include "CException.hpp"

#include <exception>
#include <string>

/**
 * @file CLibException.hpp
 * @brief File of CLibException, a class to handle program library runtine exception.
 */

/**
 * @def LIB_EXC_CODE default code for this kind of Exception.
 */
#define LIB_EXC_CODE 3

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

private:

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

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

};

#endif