деструктора? Выволивает прога дамп, почему не могу понять :-(
>деструктора? Выволивает прога дамп, почему не могу понять :-(из конструктора можно, а из деструктора не рекомендуется.
>из конструктора можно, а из деструктора не рекомендуется.даже запрещается
>даже запрещаетсяВидимо потому что созданная в классе переменная ИсключительногоКласса тут же исчезнет?
Или типа конструктор никогда не завершит работу?
Что-то туман;
Спасибо за советы;
Из конструктора можно. Семантика простая: происходит обычный
откат стека с вызовом всех необходимых деструкторов.Из деструктора нельзя. Деструктор обязан выполнить свою работу
до конца. А невозможность выполнить очистку не есть исключительная
ситуация. Если при очистке возникли проблемы, то можно:
- счесть это нормальной ситуацией и ошибку проигнорировать;
- выдать диагностику;
- известить пользователя об обнаруженном жуке.
> - счесть это нормальной ситуацией и ошибку проигнорировать;
> - выдать диагностику;
> - известить пользователя об обнаруженном жуке.
Да я тут накидал класс для коннекта к ораклу. Деструктор должен выплнить дисконнект ( ologof ), которая способна возвратить ошибку. Вот я и хотел сгенерить исключение.
Да и хрен с ним, в случае неудачи само отвалится рано или поздно.
>> - счесть это нормальной ситуацией и ошибку проигнорировать;
>> - выдать диагностику;
>> - известить пользователя об обнаруженном жуке.
>
>
> Да я тут накидал класс для коннекта к ораклу. Деструктор должен
>выплнить дисконнект ( ologof ), которая способна возвратить ошибку. Вот я
>и хотел сгенерить исключение.
> Да и хрен с ним, в случае неудачи само отвалится
>рано или поздно.в таком случае лучше написать метод типа "disconnect() throws ..."
а в деструкторе вызывать его, обрабатывая возможное исключение.Если при выполнении программы ты захочешь четко убедиться в том, что ты отвалился от базы, просто вызови ручками этот метод перед тем, как объект класса будет уничтожен.
>в таком случае лучше написать метод типа "disconnect() throws ..."
>а в деструкторе вызывать его, обрабатывая возможное исключение.Спасибо, спасибо большое за советы.
Попробую так.