Обработка исключений в Windows: простая тестовая программа не компилируется - PullRequest
1 голос
/ 10 июня 2010
#include <windows.h>

int main()
{

    int* i = (int*)malloc(sizeof(int));
    *i = 5;

    __try
    {
        free(i);
        free(i);
    }
    __except
    {
        return -1;
    }


return 0;
}

Я пытаюсь узнать больше о Windows SEH.Моя первая тестовая программа доставляет мне реальные неприятности.Я посмотрел документацию MSDN и до сих пор не совсем уверен, что я не так.Я получаю следующие ошибки при попытке скомпилировать эту программу:

error C2059: syntax error : '{'
error C2143: syntax error : missing ';' before '{'

в строке 15.

Спасибо.

1 Ответ

4 голосов
/ 10 июня 2010

Проблема в том, что в предложении __except должно быть выражение.См. Следующую страницу MSDN для полного примера

http://msdn.microsoft.com/en-us/library/aa273608(VS.60).aspx

Быстрый пример, который всегда будет выполнять обработчик

__try {
  // stuff
} __except (EXCEPTION_EXECUTE_HANDLER) {
  // handler
}
...