#include "akerror.h" #include "err_capture.h" /* * IGNORE deliberately swallows an error: it records the context in * __akerr_last_ignored, logs it with an "IGNORED ERROR" marker, and lets * execution continue. */ akerr_ErrorContext *boom(void) { PREPARE_ERROR(e); FAIL_RETURN(e, AKERR_VALUE, "this error is ignored on purpose"); } int main(void) { akerr_capture_install(); int reached_after_ignore = 0; PREPARE_ERROR(e); (void)e; IGNORE(boom()); reached_after_ignore = 1; AKERR_CHECK(__akerr_last_ignored != NULL); AKERR_CHECK(__akerr_last_ignored->status == AKERR_VALUE); AKERR_CHECK(reached_after_ignore == 1); AKERR_CHECK_CONTAINS("IGNORED ERROR"); AKERR_CHECK_CONTAINS("this error is ignored on purpose"); fprintf(stderr, "err_ignore ok\n"); return 0; }