- try - catch не ловит exeptions, enot, 14:27 , 13-Окт-05 (1)
- try - catch не ловит exeptions, node, 14:44 , 13-Окт-05 (2)
>>Не ловит Segmentation fault >> >>Примерчик простой >> >>int buf[10], i; >> >>try >>{ >> for(i=0;i<1000;i++) buf[i]=1234; >>} >>catch(...) >>{ >> printf("Exception\n"); >> return 1; >>} >> >>printf("All right\n"); >> >>т.е. выделяю буфер в 10 элементов, а потом пытаюсь пихнуть туда 1000 >>элементов. >>По идее должен возникнуть экзепшион и перехватиться cath-ом и обработаться, типа написать >>сообщение и выйти спокойно. >>Реально же выводит следующее при запуске >> >>All right >>Segmentation fault >> >>В чем я не прав и почему так получается? >> >>Спасибо заранее за помощь >>exception порождается вызовом throw, а кто тут вызывает throw? нихто... вообщем то, я всегда думал что throw для принудительного вызова exception а тут зачем делать принудительный вызов? тут задача такая: нечто (в даном примере залез за пределы выделенной памяти) срабатывает некоректно с exception-ом, который впоследствии хорошо бы отловить и обработать... вот как это сделать? то что написанно в примере не работает :( а почему не понятно а
- try - catch не ловит exeptions, Alexander S. SalieFF, 15:52 , 13-Окт-05 (4)
- try - catch не ловит exeptions, butcher, 16:00 , 13-Окт-05 (5)
- try - catch не ловит exeptions, node, 17:42 , 13-Окт-05 (6)
>>В чем я не прав и почему так получается? > >Буквально недавно попадалось на глаза сообщение, прочтите: >http://gzip.rsdn.ru/forum/Message.aspx?mid=1421018&only=1 ага, понятно, спасибо всем за советы!
только вот почему все пишут, что перехватывать сигнал, это порочная практика или это бесполезно? я вот написал перехватчик и все нормально, екзепшн ловит на сигнал SIGSEGV, я там обработать могу, в конце концов, к примеру, закрыть открытые дискрипторы файлов или сокетов... только почему все говорят, что так не очень хорошо? есть какие то скрытые проблеммы? и еще вопрос, если так в Юниксах работают странно catch, то как пишут тогда вообще нормально программы под Юниксы? Извините за вопрос, просто писал много под Винды и вообщем хорошим тоном считается try catch использовать, т.к. может произойти что угодно, особенно если проект огромный и работает круглые сутки и в котором не хотелось бы , чтоб вываливалась прога с диким криком, а хотелось бы чтоб хотя бы закрывалась корректно если что... спасибо заранее за ответы
- try - catch не ловит exeptions, Владислав, 14:31 , 18-Ноя-09 (10)
|