Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Обработка исключений / 9 сообщений из 9, страница 1 из 1
26.08.2004, 17:00
    #32667527
вопрос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка исключений
Как на VC написать обработчик ошибок который бы выполнялся для каждой ошибки, т.е. сначала catch с ее типом а потом catch для всех
...
Рейтинг: 0 / 0
26.08.2004, 17:03
    #32667531
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка исключений
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
try
{
}
catch (bla-bla-bla)
{
}
catch(...)
{
}
?


 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
26.08.2004, 17:07
    #32667542
вопрос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка исключений
не не совсем

try
{
}
catch (bla-bla-bla)
{
}
catch(...)
{
}
я бы хотел что если бы возникла ошика типа "bla-bla-bla" выполнился бы сначала блок
catch (bla-bla-bla)
{
}
а затем еще и блок
catch(...)
{
}
...
Рейтинг: 0 / 0
26.08.2004, 17:08
    #32667548
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка исключений
Вопросне не совсем

try
{
}
catch (bla-bla-bla)
{
}
catch(...)
{
}
я бы хотел что если бы возникла ошика типа "bla-bla-bla" выполнился бы сначала блок
catch (bla-bla-bla)
{
}
а затем еще и блок
catch(...)
{
}

А зачмэ ??
проше уж тогда искусвенно вызывать ошибку
...
Рейтинг: 0 / 0
26.08.2004, 17:10
    #32667555
вопрос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка исключений
Ну например я в начале процедуры открыл файл на запись а возникла ошибка с АДО или еще с чем мне хотелось бы сначала их обработать а затем закрыть файл (в любом случае)
...
Рейтинг: 0 / 0
26.08.2004, 17:21
    #32667588
вопрос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка исключений
Или в каждый catch придется писать код?
...
Рейтинг: 0 / 0
26.08.2004, 19:59
    #32667834
andrushok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка исключений
Тольки учти, что catch не все ловит... Шо в таких случаях на винде делают, не знаю, на *ксах сигнал перехватывают. Наверно и на виндах такую ситуацию шас обратать, а на W95-98 мы говорили, мол усе, генерал пришел... То бишь апликуха валилась (иногда вместе с ОС) с "General protection fault".
...
Рейтинг: 0 / 0
26.08.2004, 20:12
    #32667848
Ответ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка исключений
>Ну например я в начале процедуры открыл файл на запись а возникла >ошибка с АДО или еще с чем мне хотелось бы сначала их обработать а затем закрыть файл (в любом случае)

да это не в catch ловится, а в деструкторе.
чета вроде

class FileWrapper
{
FILE *fp;

public:

operator *FILE() { return fp;}
FileWrapper() : fp(0) {}
~FileWrapper()
{
if(0 != fp)
{ // закрыть файл

}
}

}
...
Рейтинг: 0 / 0
27.08.2004, 07:44
    #32668080
Siebentearbeit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка исключений
Дайте мне тоже шашкой помахать! =)

Надо делать так:

Код: plaintext
1.
2.
3.
4.
5.
__try
{
}
__except(fexceptor)
{
}
где fexeptor - функция обработки, в которую можно отсюда передать информацию о ехепшне.
Так ловится, кстати, упомянутый выше генерал ;)

при этот fexeptor может путём возвращаемого значения решить будет ли программа работать дальше, не будет ли и будут ли обработаны следующие блоки __except, чего автор поста и хотел...

Ну как я выпендрился?
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Обработка исключений / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]