/*********************************************************
 * class bad_operation
 *
 * CompositeパターンでLeafのaddやremoveなどを呼び出してしま
 * った時に投げられる、例外。
 *********************************************************/

/*********************************************************
 * class cant_open_file
 *
 * ファイルを読み込めなかったときに投げられる例外。
 *********************************************************/
#ifndef ATS_EXCEPTION_H
#define ATS_EXCEPTION_H

#include <exception>
#include <typeinfo>

namespace ats
{
	class bad_operation : public std::exception
	{
	public:
		bad_operation(const char* str = "bad_operation")
			: exception(str) {}
	};

	class cant_open_file : public std::exception
	{
	public:
		cant_open_file(const char* str = "cant_open_file")
			: exception(str) {}
	};

	class boid_exception : public std::exception
	{
	public:
		boid_exception(const char* str) : exception(str) {}
	};
}
#endif // ATS_EXCEPTION_H
