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 } 55