> Просто пришла в голову > мысль: почему бы не писать try за пределами main.
Мне тоже мысль об этом сразу в голову пришла. Насколько я знаю, компилятор вызов main "заворачивает" в try-блок, который обрабатывает исключение, если оно не было обработано в программе. Может тебе исследовать генерируемый код и попытаться сделать руками нечто аналогичное.
[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.
> Просто пришла в голову > мысль: почему бы не писать try за пределами main.
Мне тоже мысль об этом сразу в голову пришла. Насколько я знаю, компилятор вызов main "заворачивает" в try-блок, который обрабатывает исключение, если оно не было обработано в программе. Может тебе исследовать генерируемый код и попытаться сделать руками нечто аналогичное.
[C++] Ну и ладно...11.02.02 10:12 Автор: XR <eXtremal Research> Статус: The Elderman
> > Просто пришла в голову > > мысль: почему бы не писать try за пределами main.
Вообще то за пределами main() try/catch прекрасно работает
(если помещен в конструктор/деструктор глобального объекта)
вот только в данном случае с глобальной обработкой исключений это поможет слабо
Копай дизайн, фантазируй ....
> > Мне тоже мысль об этом сразу в голову пришла. Насколько я > знаю, компилятор вызов main "заворачивает" в try-блок, > который обрабатывает исключение, если оно не было > обработано в программе. Может тебе исследовать генерируемый > код и попытаться сделать руками нечто аналогичное.
попытаться то можно - только все это сильно компиляторо-системозависимо...