URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3973
[ Назад ]

Исходное сообщение
"А почему throw может валить задачу в дамп?"

Отправлено Lamr , 17-Фев-05 21:03 
Конструктор отрабатывает, выводит тестовое сообщение, а до catch дело не доходит; - core dumped. И деструктор исключения тоже не отрабатывает.

    Так происходит, если точки для перехвата в стеке нет, но я поставил catch (...), должен поймать по теории.

Может кто разбирался уже с траблом?


Содержание

Сообщения в этом обсуждении
"А почему throw может валить задачу в дамп?"
Отправлено Lamr , 17-Фев-05 21:07 

> Может кто разбирался уже с траблом?


Да, ещё могу сказать, что исключение генерит переменная класса, которая описана глобальной ( за пределами main ). Т е ничего исчезать или быть за пределами видимости не должно вообще-то


"А почему throw может валить задачу в дамп?"
Отправлено Dead Mustdie , 18-Фев-05 09:38 
>Конструктор отрабатывает, выводит тестовое сообщение, а до catch
>дело не доходит; - core dumped. И деструктор исключения
>тоже не отрабатывает.
>
>    Так происходит, если точки для перехвата в стеке
>нет, но я поставил catch (...), должен поймать по теории.
>
> Может кто разбирался уже с траблом?

Если исключение не обрабатывается, то вызывается abort().
Если исключение не ловится на catch(...), то это не исключение :).
Причина coredump'а может быть и не в самом факте выброса исключения.


"А почему throw может валить задачу в дамп?"
Отправлено Lamr , 18-Фев-05 10:14 

>Если исключение не ловится на catch(...), то это не исключение :).

Это точно, я кажись понял причину. Как я писал throw генерил член класса, который я поместил за функцией main. А catch - внутри функции main. Ему некуда просто стек раскручивать - он за пределами всех функций, на самом верху стека.

Не знаю, правильны мои рассуждения или нет, но прога заработала когда я поместил член в main :-))
  Член класса :-))