Здравствуйте, 0xVLD, Вы писали:
VLD>Здравствуйте, Basil2, Вы писали:
B>>У меня try/catch не ловят read access error, все равно программа вываливается с "instruction XXX accessed address YYY". Пробовал на Watcom 11 и MSVC 6.0. В чем может быть дело? Есть ли работающий пример?
B>>(так, чтобы при конструкции printf("%s", NULL) я мог ее обработать, а не вываливаться из программы)
VLD>Попробуй установить свой фильтр необработанных исключений через SetUnhandledExceptionFilter
(это если на все и вся сразу, чтобы вообще не падала)
Если места точно известны, то можно просто
try
{
*(PBYTE) 0 = 0;
printf("%s", NULL);//у меня тут вообще нет ошибки
}
catch (...)
{
::MessageBox(NULL,"ZZZZ","PPPPP",MB_OK);
}
__try
{
*(PBYTE) 0 = 0;
printf("%s", NULL);
}
__except (EXCEPTION_ACCESS_VIOLATION == GetExceptionCode())
{
::MessageBox(NULL,"ZZZZ","PPPPP",MB_OK);
}
если второй вариант надо через try/catch то надо написать класс-обертку EXCEPTION_RECORD и отлавливать его в catch ()