Re[4]: sprintf и надежность программы
От: 0xVLD  
Дата: 24.08.04 10:30
Оценка:
Здравствуйте, 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 ()
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.