メインの処理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); } } }