![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0 |
エラー処理は、標準 C++ 言語の構文と親和性の高い「擬似 catch-throw 構文」を使います。
エラー値の型は エラー型です。
表 6.4. エラー処理の関数
| 関数 | 意味 |
|---|---|
| static_catch | エラーを取得します。 |
| static_try | エラーが発生したかどうかを取得します。 |
| static_throw | エラーを設定します。 |
| static_throws | 関数がエラーを投げることを示します。 |
例 6.1. エラー処理
class MyApp : public SFCApplication {
public:
Void SubFunc(Void) static_throws; // SubFunc は static_throws によりエラーを投げる
Void MainFunc(Void);
...
};
Void SubFunc(Void) static_throws // SubFunc は static_throws によりエラーを投げる
{
if (static_try()) { // 現在のエラーの有無をチェックする
// エラーは発生していない
// オブジェクトを生成する
XXXObjectPtr object = new XXXObject();
if (object == null) { // オブジェクトの生成に失敗したとき
static_throw(SFERR_NO_MEMORY); // メモリ不足エラー ( SFERR_NO_MEMORY ) を投げる
return; // static_throw は自動的に return しないので必要
}
}
...
}
Void MainFunc(Void)
{
...
SubFunc();
switch (static_catch()) {
// エラーに応じた処理
case SFERR_NO_MEMORY: // メモリ不足
...
case SFERR_NO_ERROR: // エラーが発生していない
...
}
...
}
|
Copyright (C) 2002 - 2008 Sophia Cradle Incorporated All Rights Reserved. |
![]() ![]() ![]()
|