Files
libakerror/tests/err_catch.c

38 lines
764 B
C

#include "akerror.h"
akerr_ErrorContext *func2(void)
{
PREPARE_ERROR(errctx);
ATTEMPT {
FAIL(errctx, AKERR_NULLPOINTER, "This is a failure in func2");
} CLEANUP {
} PROCESS(errctx) {
} FINISH(errctx, true);
SUCCEED_RETURN(errctx);
}
akerr_ErrorContext *func1(void)
{
PREPARE_ERROR(errctx);
ATTEMPT {
CATCH(errctx, func2());
} CLEANUP {
} PROCESS(errctx) {
} FINISH(errctx, true);
SUCCEED_RETURN(errctx);
}
akerr_ErrorContext *akerr_user_main(int argc, char **argv)
{
PREPARE_ERROR(errctx);
ATTEMPT {
CATCH(errctx, func1());
} CLEANUP {
} PROCESS(errctx) {
} HANDLE(errctx, AKERR_NULLPOINTER) {
akerr_log_method("Caught exception");
} FINISH(errctx, true);
SUCCEED(errctx);
}