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
8char test[] = "SEH0006.c";
9
10int main() {
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 }
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}
#define except(x)
Definition: btrfs_drv.h:136
#define NULL
Definition: types.h:112
VOID WINAPI RaiseException(_In_ DWORD dwExceptionCode, _In_ DWORD dwExceptionFlags, _In_ DWORD nNumberOfArguments, _In_opt_ const ULONG_PTR *lpArguments)
Definition: except.c:700
#define printf
Definition: freeldr.h:97
long LONG
Definition: pedump.c:60
char test[]
Definition: seh0006.c:8
int main()
Definition: seh0006.c:10
#define endtry
Definition: seh.h:24
#define abnormal_termination
Definition: seh.h:25
static LARGE_INTEGER Counter
Definition: clock.c:43
#define EXCEPTION_INT_OVERFLOW
Definition: winbase.h:324