例外の生成(C言語)

説明:

メインの処理DoExceptionでは、メモリ割り当て関数TMallocを実行する。TMallocは、割り当てサイズに負の値が指定されたならば、例外を発生する。

サンプルコード:

void *TMalloc(int size)
{
	if(size <= 0) {
		RaiseException(
			0,
			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) {
			printf("例外発生\n");
		}
	} finally {
		if(p1 != NULL) {
			printf("メモリ解放1\n");
			GlobalFree(p1);
		}

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

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