__try __,但不能在“数组界限超出”状态下工作

时间:2018-10-08 12:02:49

标签: c error-handling try-except

我必须使用__try__except语句来处理可能的内存errors,如下所示:

#include <Windows.h>
#include <Shlwapi.h>
#include <stdio.h>


INT main()
{
    CHAR a[5] = { 0 };
    // literal string
    CHAR *b = "hello12345";

    __try
    {
        StrCpyA(a, b);
    }
    __except ((GetExceptionCode() == EXCEPTION_ARRAY_BOUNDS_EXCEEDED) ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH)
    {
        printf("Array bounds exceeded!");
    }

    return 0;
}

在运行时,使用__try__except时程序意外停止并出现错误,并且__except()块中没有发生异常!

顺便说一句,我正在使用Windows API typedef's

有什么建议吗?

0 个答案:

没有答案