AM Daemon ライブラリリファレンス
クラス | マクロ定義 | 列挙型 | 関数
exception : 例外処理

AM Daemon の例外処理関連定義。 [詳解]

+ exception : 例外処理 連携図

クラス

class  amdaemon::Exception
 AM Daemon の例外クラス。 [詳解]
 
class  amdaemon::util::StackTrace
 スタックトレース情報クラス。 [詳解]
 

マクロ定義

#define AMDAEMON_MAKE_EXCEPTION(cate)
 amdaemon::Exception インスタンスを生成する。 [詳解]
 
#define AMDAEMON_MAKE_EXCEPTION_MSG(cate, msg)
 amdaemon::Exception インスタンスを付随メッセージ付きで生成する。 [詳解]
 
#define AMDAEMON_RAISE_EXCEPTION(cate)
 例外を発生させる。 [詳解]
 
#define AMDAEMON_RAISE_EXCEPTION_MSG(cate, msg)
 付随メッセージ付きの例外を発生させる。 [詳解]
 
#define AMDAEMON_RAISE_LOGIC_EXCEPTION()
 ロジック(Logic)例外を発生させる。 [詳解]
 
#define AMDAEMON_RAISE_LOGIC_EXCEPTION_MSG(msg)
 付随メッセージ付きのロジック(Logic)例外を発生させる。 [詳解]
 
#define AMDAEMON_RAISE_OPERATION_EXCEPTION()
 オペレーション(Operation)例外を発生させる。 [詳解]
 
#define AMDAEMON_RAISE_OPERATION_EXCEPTION_MSG(msg)
 付随メッセージ付きのオペレーション(Operation)例外を発生させる。 [詳解]
 
#define AMDAEMON_RAISE_RUNTIME_EXCEPTION()
 実行時(Runtime)例外を発生させる。 [詳解]
 
#define AMDAEMON_RAISE_RUNTIME_EXCEPTION_MSG(msg)
 付随メッセージ付きの実行時(Runtime)例外を発生させる。 [詳解]
 
#define AMDAEMON_RAISE_FATAL_EXCEPTION()
 回復不能(Fatal)例外を発生させる。 [詳解]
 
#define AMDAEMON_RAISE_FATAL_EXCEPTION_MSG(msg)
 付随メッセージ付きの回復不能(Fatal)例外を発生させる。 [詳解]
 

列挙型

enum  amdaemon::ExceptionCategory {
  amdaemon::ExceptionCategory::Logic,
  amdaemon::ExceptionCategory::Operation,
  amdaemon::ExceptionCategory::Runtime,
  amdaemon::ExceptionCategory::Fatal,
  amdaemon::ExceptionCategory::Unknown
}
 AM Daemon の例外カテゴリ列挙。 [詳解]
 

関数

void amdaemon::raiseException (const Exception &ex)
 例外を発生させる。 [詳解]
 
const wchar_t * amdaemon::toString (ExceptionCategory category)
 ExceptionCategory 列挙値の文字列表現値を取得する。 [詳解]
 

詳解

AM Daemon の例外処理関連定義。

マクロ定義詳解

#define AMDAEMON_MAKE_EXCEPTION (   cate)

amdaemon::Exception インスタンスを生成する。

引数
[in]cate例外カテゴリ列挙 ExceptionCategory の列挙値名。
#define AMDAEMON_MAKE_EXCEPTION_MSG (   cate,
  msg 
)

amdaemon::Exception インスタンスを付随メッセージ付きで生成する。

引数
[in]cate例外カテゴリ列挙 ExceptionCategory の列挙値名。
[in]msg付随メッセージ。 const wchar_t* に変換可能でなければならない。
#define AMDAEMON_RAISE_EXCEPTION (   cate)

例外を発生させる。

引数
[in]cate例外カテゴリ列挙 ExceptionCategory の列挙値名。
#define AMDAEMON_RAISE_EXCEPTION_MSG (   cate,
  msg 
)

付随メッセージ付きの例外を発生させる。

引数
[in]cate例外カテゴリ列挙 ExceptionCategory の列挙値名。
[in]msg付随メッセージ。 const wchar_t* に変換可能でなければならない。
#define AMDAEMON_RAISE_LOGIC_EXCEPTION ( )

ロジック(Logic)例外を発生させる。

覚え書き
主に引数チェック時に用いられる。
#define AMDAEMON_RAISE_LOGIC_EXCEPTION_MSG (   msg)

付随メッセージ付きのロジック(Logic)例外を発生させる。

引数
[in]msg付随メッセージ。 const wchar_t* に変換可能でなければならない。
覚え書き
主に引数チェック時に用いられる。
#define AMDAEMON_RAISE_OPERATION_EXCEPTION ( )

オペレーション(Operation)例外を発生させる。

覚え書き
関数呼び出し手順を誤っている時などに用いられる。
#define AMDAEMON_RAISE_OPERATION_EXCEPTION_MSG (   msg)

付随メッセージ付きのオペレーション(Operation)例外を発生させる。

引数
[in]msg付随メッセージ。 const wchar_t* に変換可能でなければならない。
覚え書き
関数呼び出し手順を誤っている時などに用いられる。
#define AMDAEMON_RAISE_RUNTIME_EXCEPTION ( )

実行時(Runtime)例外を発生させる。

覚え書き
実行時の状況によって問題が発生した時に用いられる。
#define AMDAEMON_RAISE_RUNTIME_EXCEPTION_MSG (   msg)

付随メッセージ付きの実行時(Runtime)例外を発生させる。

引数
[in]msg付随メッセージ。 const wchar_t* に変換可能でなければならない。
覚え書き
実行時の状況によって問題が発生した時に用いられる。
#define AMDAEMON_RAISE_FATAL_EXCEPTION ( )

回復不能(Fatal)例外を発生させる。

#define AMDAEMON_RAISE_FATAL_EXCEPTION_MSG (   msg)

付随メッセージ付きの回復不能(Fatal)例外を発生させる。

引数
[in]msg付随メッセージ。 const wchar_t* に変換可能でなければならない。

列挙型詳解

AM Daemon の例外カテゴリ列挙。

列挙値
Logic 

引数間違いなど単純なバグ。

例外スローを抑止した場合は例外生成元の関数が失敗値(false など)を返す。

Operation 

呼び出し順序間違いなどAPI使用方法のミス。

例外スローを抑止した場合は例外生成元の関数が失敗値(false など)を返す。

Runtime 

実行時の状況によるエラー。

例外スローを抑止した場合は例外生成元の関数が失敗値(false など)を返す。

Fatal 

共有メモリ確保失敗など回復不能なエラー。

例外スローを抑止した場合はまず __debugbreak 関数を呼び出し、 そこを通過した場合は std::unexpected 関数を呼び出す。 std::unexpected 関数は既定ではアプリを強制終了させる。

Unknown 

不明。ライブラリ側で明示的にこのカテゴリを用いることはない。

例外スローを抑止した場合はまず __debugbreak 関数を呼び出し、 そこを通過した場合は std::unexpected 関数を呼び出す。 std::unexpected 関数は既定ではアプリを強制終了させる。

関数詳解

void amdaemon::raiseException ( const Exception ex)

例外を発生させる。

引数
[in]ex例外。

例外フック関数が設定されているならばそれを呼び出す。 そうでなければ標準の例外処理を行い、最後にスローする。

通常、この関数を直接呼び出すことはなく、 AMDAEMON_RAISE_EXCEPTION マクロまたは AMDAEMON_RAISE_EXCEPTION_MSG マクロを 用いて例外を発生させる。

const wchar_t* amdaemon::toString ( ExceptionCategory  category)

ExceptionCategory 列挙値の文字列表現値を取得する。

引数
[in]categoryExceptionCategory 列挙値。
戻り値
ExceptionCategory 列挙値の文字列表現値。不正値の場合は nullptr 。