ReactOS
0.4.16-dev-91-g764881a
seh0006.c
Go to the documentation of this file.
1
// Copyright (c) Microsoft. All rights reserved.
2
// Licensed under the MIT license. See LICENSE file in the project root for
3
// full license information.
4
5
#include <windows.h>
6
#include "
seh.h
"
7
8
char
test
[] =
"SEH0006.c"
;
9
10
int
main
() {
11
LONG
Counter
;
12
13
Counter
= 0;
14
15
try
{
16
try
{
17
Counter
+= 1;
18
RaiseException
(
EXCEPTION_INT_OVERFLOW
, 0,
/* no flags */
19
0,
NULL
);
20
// RtlRaiseException(&ExceptionRecord);
21
}
22
finally
{
23
if
(
abnormal_termination
() != 0)
24
/*
25
* an exception is not an abnormal termination
26
* therefore thi should get executed
27
*/
28
{
29
Counter
+= 1;
30
}
31
}
32
endtry
33
}
34
except
(
Counter
)
35
/* counter should equal "EXECUTE HANDLER" */
36
{
37
if
(
Counter
== 2)
38
/*
39
* counter should equal two and therefore
40
* execute this code
41
*/
42
{
43
Counter
+= 1;
44
}
45
}
46
endtry
47
48
if
(
Counter
!= 3) {
49
printf
(
"TEST 6 FAILED. Counter = %d\n\r"
,
Counter
);
50
return
-1;
51
}
52
53
return
0;
54
}
except
#define except(x)
Definition:
btrfs_drv.h:136
NULL
#define NULL
Definition:
types.h:112
RaiseException
VOID WINAPI RaiseException(_In_ DWORD dwExceptionCode, _In_ DWORD dwExceptionFlags, _In_ DWORD nNumberOfArguments, _In_opt_ const ULONG_PTR *lpArguments)
Definition:
except.c:700
printf
#define printf
Definition:
freeldr.h:97
LONG
long LONG
Definition:
pedump.c:60
test
char test[]
Definition:
seh0006.c:8
main
int main()
Definition:
seh0006.c:10
seh.h
endtry
#define endtry
Definition:
seh.h:24
abnormal_termination
#define abnormal_termination
Definition:
seh.h:25
Counter
static LARGE_INTEGER Counter
Definition:
clock.c:43
EXCEPTION_INT_OVERFLOW
#define EXCEPTION_INT_OVERFLOW
Definition:
winbase.h:324
modules
rostests
apitests
compiler
ms
seh
seh0006.c
Generated on Fri Oct 4 2024 06:06:38 for ReactOS by
1.9.6