/**
* @file assertion_error.hpp
* @brief J Library AssertionError ヘッダファイル。
* @copyright 2001 - 2024 Nomura Kei
* @depends
* j/lang/throwable.hpp
*/
#ifndef J_LANG_ASSERTION_ERROR_HPP
#define J_LANG_ASSERTION_ERROR_HPP
#include <j/lang/error.hpp>
namespace j
{
namespace lang
{
class AssertionError : public Error
{
public:
// デフォルトコンストラクタ
AssertionError() noexcept;
// コンストラクタ
AssertionError(const String &msg) noexcept;
// コンストラクタ
AssertionError(const String &msg, const char *file, const char *func, int line) noexcept;
// コピーコンストラクタ
AssertionError(const AssertionError &t) noexcept;
// ムーブコンストラクタ
AssertionError(AssertionError &&t) noexcept;
// デストラクタ
~AssertionError() noexcept;
// ファイル名取得
const char *getFile() const noexcept;
// 関数名取得
const char *getFunc() const noexcept;
// 行番号取得
int getLine() const noexcept;
// 文字列表現取得
String toString() const noexcept override;
private:
const char *file;
const char *func;
int line;
};
} // namespace lang
} // namespace j
#endif // J_LANG_ASSERTION_ERROR_HPP