Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |  |  |
[C++] Ну и ладно... 08.02.02 22:58 Число просмотров: 985
Автор: Sandy <Alexander Stepanov> Статус: Elderman
|
> Просто пришла в голову > мысль: почему бы не писать try за пределами main.
Мне тоже мысль об этом сразу в голову пришла. Насколько я знаю, компилятор вызов main "заворачивает" в try-блок, который обрабатывает исключение, если оно не было обработано в программе. Может тебе исследовать генерируемый код и попытаться сделать руками нечто аналогичное.
|
|
<programming>
|
[C++] Возможно ли взять в try конструктор глобальной переменной? 05.02.02 07:55
Автор: Biasha <Бяша> Статус: Member Отредактировано 05.02.02 08:02 Количество правок: 1
|
Есть класс, и у него в конструкторе возможен throw. И всё было отлично, пока не пришлось сделать его глобальным.
Вот было бы неплохо как-то обработать этот throw, а то идея структурной обработки погибнет.
|
 |
[C++] Пока нет, но 05.02.02 09:24
Автор: leo <Леонид Юрьев> Статус: Elderman
|
> Есть класс, и у него в конструкторе возможен throw. И всё > было отлично, пока не пришлось сделать его глобальным. > Вот было бы неплохо как-то обработать этот throw, а то идея > структурной обработки погибнет.
Насколько я знаю, пока нет компилятором которые это могут. У Страустурпа об этом упоминается как о try-блоке вне какой-либо функции. Но все равно это толком ничего не дает, глобальный экземпляр класса нельзя еще раз попробовать создать. Выход один - вместо глобальной переменной используй глобальный указатель, и в main делай для него new.
Удачи!
|
 |  |
[C++] Ну и ладно... 07.02.02 02:59
Автор: Biasha <Бяша> Статус: Member
|
> Насколько я знаю, пока нет компилятором которые это могут. > У Страустурпа об этом упоминается как о try-блоке вне Если уж он пишет, чего ж нет таких компиляторов?
> какой-либо функции. Но все равно это толком ничего не дает, > глобальный экземпляр класса нельзя еще раз попробовать Да мне хоть бы обработку всех ошибок запихнуть в одно место, а то плодиться начинает.
> создать. Выход один - вместо глобальной переменной > используй глобальный указатель, и в main делай для него > new. Да нет, тут именно переменную-класс нужно.
> > Удачи! В общем, я ещё не очень много над этим думал. Конечно, можно сделать иначе – так и сделаю. Просто пришла в голову мысль: почему бы не писать try за пределами main.
|
 |  |  |
[C++] Ну и ладно... 08.02.02 22:58
Автор: Sandy <Alexander Stepanov> Статус: Elderman
|
> Просто пришла в голову > мысль: почему бы не писать try за пределами main.
Мне тоже мысль об этом сразу в голову пришла. Насколько я знаю, компилятор вызов main "заворачивает" в try-блок, который обрабатывает исключение, если оно не было обработано в программе. Может тебе исследовать генерируемый код и попытаться сделать руками нечто аналогичное.
|
 |  |  |  |
[C++] Ну и ладно... 11.02.02 10:12
Автор: XR <eXtremal Research> Статус: The Elderman
|
> > Просто пришла в голову > > мысль: почему бы не писать try за пределами main.
Вообще то за пределами main() try/catch прекрасно работает
(если помещен в конструктор/деструктор глобального объекта)
вот только в данном случае с глобальной обработкой исключений это поможет слабо
Копай дизайн, фантазируй ....
> > Мне тоже мысль об этом сразу в голову пришла. Насколько я > знаю, компилятор вызов main "заворачивает" в try-блок, > который обрабатывает исключение, если оно не было > обработано в программе. Может тебе исследовать генерируемый > код и попытаться сделать руками нечто аналогичное.
попытаться то можно - только все это сильно компиляторо-системозависимо...
|
|
|