76 lines
901 B
C++
76 lines
901 B
C++
|
/*++
|
||
|
|
||
|
Copyright (c) 2001 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
throw.cpp
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This module implements a program which tests C++ EH.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
David N. Cutler (davec) 25-Jun-2001
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
User mode.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
None.
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#include <windows.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <stdio.h>
|
||
|
#include <string.h>
|
||
|
#include <malloc.h>
|
||
|
|
||
|
VOID
|
||
|
func (
|
||
|
ULONG N
|
||
|
)
|
||
|
|
||
|
{
|
||
|
if (N != 0) {
|
||
|
throw N;
|
||
|
}
|
||
|
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// Main program.
|
||
|
//
|
||
|
|
||
|
int
|
||
|
__cdecl
|
||
|
main(
|
||
|
int argc,
|
||
|
char *argv[],
|
||
|
char *envp[]
|
||
|
)
|
||
|
|
||
|
{
|
||
|
try {
|
||
|
func(5);
|
||
|
printf("resuming, should never happen\n");
|
||
|
|
||
|
} catch(ULONG) {
|
||
|
printf("caught ULONG exception\n");
|
||
|
|
||
|
} catch(CHAR *) {
|
||
|
printf("caught CHAR * exception\n");
|
||
|
|
||
|
} catch(...) {
|
||
|
printf("caught typeless exception\n");
|
||
|
}
|
||
|
|
||
|
printf("terminating after try block\n");
|
||
|
return 0;
|
||
|
}
|