AM Daemon の例外処理関連定義。
[詳解]
AM Daemon の例外処理関連定義。
#define AMDAEMON_MAKE_EXCEPTION |
( |
|
cate | ) |
|
#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 |
( |
| ) |
|
#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 | ) |
|
例外を発生させる。
- 引数
-
例外フック関数が設定されているならばそれを呼び出す。 そうでなければ標準の例外処理を行い、最後にスローする。
通常、この関数を直接呼び出すことはなく、 AMDAEMON_RAISE_EXCEPTION マクロまたは AMDAEMON_RAISE_EXCEPTION_MSG マクロを 用いて例外を発生させる。