#ifndef __GFL_ILLIGA_ARGUMENT_EXCEPTION_H__
#define __GFL_ILLIGA_ARGUMENT_EXCEPTION_H__

#pragma once

#include <nn.h>
#include <exception>
#include <stdexcept>

#include <err/gfl_Exception.h>


namespace gfl{
namespace err{



/*!
 * @brief  引数が不正の際にthrowされる例外クラス
 */
class IlligalArgumentException : public gfl::err::Exception, public ::std::invalid_argument, public ::std::out_of_range
{
public:
  /** ---------------------------------------------------------------------
  * @brief  コンストラクタ
  * @param  message エラーメッセージを追加したい場合、文字列を渡す。
  *         NULLの指定も可能。
  * @param  fileName エラーが発生したファイル名
  *         NULLの指定も可能。
  * @param  line     エラーが発生したファイル行番号
  * @param  funcName エラーが発生した関数名(省略可能)
  *         NULLの指定も可能。
  * @return 無し
  ***/
  // -----------------------------------------------------------------------
  IlligalArgumentException( const char * message = NULL, const char *fileName = NULL, u32 line = 0, const char* funcName = NULL );
};



} // err
} // gfl

#endif  // __GFL_ILLIGA_ARGUMENT_EXCEPTION_H__
