The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"А можно throw из конструктора или "
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"А можно throw из конструктора или " 
Сообщение от Lamr emailИскать по авторуВ закладки on 15-Фев-05, 18:02  (MSK)
деструктора? Выволивает прога дамп, почему не могу понять :-(
  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "А можно throw из конструктора или " 
Сообщение от Xenu emailИскать по авторуВ закладки on 15-Фев-05, 19:14  (MSK)
>деструктора? Выволивает прога дамп, почему не могу понять :-(

из конструктора можно, а из деструктора не рекомендуется.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "А можно throw из конструктора или " 
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 15-Фев-05, 19:30  (MSK)
>из конструктора можно, а из деструктора не рекомендуется.

даже запрещается

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "А можно throw из конструктора или " 
Сообщение от Lamr emailИскать по авторуВ закладки on 15-Фев-05, 20:46  (MSK)

>даже запрещается

Видимо потому что созданная в классе переменная ИсключительногоКласса тут же исчезнет?

Или типа конструктор  никогда не завершит работу?

Что-то туман;

Спасибо за советы;

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "А можно throw из конструктора или " 
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 15-Фев-05, 21:47  (MSK)
Из конструктора можно. Семантика простая: происходит обычный
откат стека с вызовом всех необходимых деструкторов.

Из деструктора нельзя. Деструктор обязан выполнить свою работу
до конца. А невозможность выполнить очистку не есть исключительная
ситуация. Если при очистке возникли проблемы, то можно:
  - счесть это нормальной ситуацией и ошибку проигнорировать;
  - выдать диагностику;
  - известить пользователя об обнаруженном жуке.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "А можно throw из конструктора или " 
Сообщение от Lamr emailИскать по авторуВ закладки on 16-Фев-05, 10:55  (MSK)
>  - счесть это нормальной ситуацией и ошибку проигнорировать;
>  - выдать диагностику;
>  - известить пользователя об обнаруженном жуке.


Да я тут накидал класс для коннекта к ораклу. Деструктор должен выплнить дисконнект ( ologof ), которая способна возвратить ошибку. Вот я и хотел сгенерить исключение.
  Да и хрен с ним, в случае неудачи само отвалится рано или поздно.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "А можно throw из конструктора или " 
Сообщение от Vladislav Lazarenko emailИскать по авторуВ закладки on 16-Фев-05, 11:32  (MSK)
>>  - счесть это нормальной ситуацией и ошибку проигнорировать;
>>  - выдать диагностику;
>>  - известить пользователя об обнаруженном жуке.
>
>
> Да я тут накидал класс для коннекта к ораклу. Деструктор должен
>выплнить дисконнект ( ologof ), которая способна возвратить ошибку. Вот я
>и хотел сгенерить исключение.
>  Да и хрен с ним, в случае неудачи само отвалится
>рано или поздно.

в таком случае лучше написать метод типа "disconnect() throws ..."
а в деструкторе вызывать его, обрабатывая возможное исключение.

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

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "А можно throw из конструктора или " 
Сообщение от Lamr emailИскать по авторуВ закладки on 16-Фев-05, 11:47  (MSK)

>в таком случае лучше написать метод типа "disconnect() throws ..."
>а в деструкторе вызывать его, обрабатывая возможное исключение.

Спасибо, спасибо большое за советы.
Попробую так.


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру