GetExceptionCode 例外コードの取得

Cの宣言:

DWORD GetExceptionCode(VOID)

説明:

発生した例外の例外コードを取得する。

この関数は、exceptのフィルタ式または例外ハンドラ中でのみ使用可能である。

戻り値は、取得結果の例外コードである。

Cのサンプル:

メモリ割り当て関数TMallocは、負のサイズが与えられたら例外を発生する。メインの処理では、例外が発生したら、例外コードを取得し、例外コードに対応するメッセージを表示する。
#define TEXCEPTION_MEMORY_ERROR 0x1001

/* メモリ割り当て関数 */
void *TMalloc(int size)
{
	if(size <= 0) {
		RaiseException(
			TEXCEPTION_MEMORY_ERROR,
			EXCEPTION_NONCONTINUABLE,
			0,
			NULL);
	}

	return(GlobalAlloc(GMEM_FIXED, size));
}

/* メインの処理 */
void DoException()
{
	void *p1 = NULL;
	void *p2 = NULL;

	try {
		try {
			printf("メモリ割り当て1\n");
			p1 = TMalloc(100);

			printf("メモリ割り当て2\n");
			p2 = TMalloc(-30);

		} except(EXCEPTION_EXECUTE_HANDLER) {
			switch(GetExceptionCode()) {
			case TEXCEPTION_MEMORY_ERROR:
				printf("メモリ割り当て例外発生\n");
				break;

			default:
				printf("不明な例外発生\n");
				break;
			}
		}
	} finally {
		if(p1 != NULL) {
			printf("メモリ解放1\n");
			GlobalFree(p1);
		}

		if(p2 != NULL) {
			printf("メモリ解放2\n");
			GlobalFree(p2);
		}
	}
}
(original text:1998/12/25 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。