This repository has been archived on 2026-05-18. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
exclib/demo/cleanup.c

37 lines
652 B
C

#include "exclib.h"
int main(void)
{
int val = 512;
int *ptr = &val;
TRY {
THROW(3, "Checking to ensure cleanup behavior executes before EXCEPT block");
} CLEANUP {
ptr = NULL;
} EXCEPT {
} CATCH(3) {
if ( ptr != NULL ) {
EXCLIB_TRACE("pointer was not reset to NULL in first CLEANUP block");
return 1;
}
} FINALLY {
} ETRY;
ptr = &val;
TRY {
/* No exception thrown here, CLEANUP should still execute */
} CLEANUP {
ptr = NULL;
} EXCEPT {
} FINALLY {
} ETRY;
if ( ptr != NULL ) {
EXCLIB_TRACE("pointer was not reset to NULL in first TRY block");
return 1;
}
return 0;
}