Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
1

Поймать исключение в глобальном объекте

24.10.2016, 05:00. Показов 727. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть глобальный объект, конструктор которого может кинуть исключение типа std::exception. Разумеется, на этом приключения программы и закончатся. Однако, перед этим хотелось бы показать что у этого исключения в методе what(). Или записать содержимое what() в лог. В общем, сделать не обработку исключения по умолчанию, а свою. Вопрос - куда мне свой обработчик исключения вписывать, чтоб он исключения глобальных объектов ловил? С локальным объектом то все понятно, но глобальный в try/catch заворачиваться не хочет.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdexcept>
 
struct test
{
    test(){
        throw std::runtime_error("Error!");//вот это исключение надо поймать и в лог записать
    }
};
test T;
 
int main()
{
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.10.2016, 05:00
Ответы с готовыми решениями:

Как поймать исключение связанное с неправильным итератором?
Доброго времени суток. Не могу поймать исключение, при запуск программы выдает ошибку vector...

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

Что разрешено в глобальном пространстве?
Стивен Прата информирует, что этот его пример — это пример валидного кода. Однако тут есть два...

Нисходящее перемещение кода при глобальном планировании
Здравствуйте, прошу помощи в реализации данной темы. Суть такова, создать программу, которая...

2
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12812 / 6684 / 1800
Регистрация: 18.10.2014
Сообщений: 16,935
24.10.2016, 06:07 2
В буквальной постановке задача не имеет решения.

Тут выход только один - тем или иным способом переносить момент конструкции объекта туда, где вы сможете заключить этот момент в блок try {} catch {} - создавать через new, объявлять статическим внутри функции и т.п.
2
148 / 118 / 37
Регистрация: 27.10.2011
Сообщений: 690
24.10.2016, 06:51 3
Дополню ответ TheCalligrapher : можно использовать синглтон с ленивой инициализацией
0
24.10.2016, 06:51
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.10.2016, 06:51
Помогаю со студенческими работами здесь

Поймать исключение
Почему-то не ловятся исключения: try { return a.exec(); } catch (...) { ...

Как поймать исключение в программе?
В общем, если я ловлю исключение ThreadAbortException, то надо произвести некоторые действия, но у...

Нужно поймать исключение из api
Всем привет. Нужен совет по поводу того, как обработать исключение, которое приходит из...

Как поймать исключение в Task?
Здраствуйте! Есть код (все лишнее соответственно убрал): try { Task t1 =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Когда лучше использовать LinkedList вместо ArrayList в Java
bytestream 28.01.2025
При разработке Java-приложений выбор правильной структуры данных играет ключевую роль в обеспечении эффективности и производительности программы. ArrayList и LinkedList являются двумя. . .
Какой ответ HTTP лучше использовать: 403 Forbidden или 401 Unauthorized, когда недостаточно прав
bytestream 28.01.2025
В современной веб-разработке правильная обработка ошибок и точное информирование клиентов о статусе их запросов играют критическую роль в создании надежных и безопасных приложений. Особое внимание. . .
Как получить список всех файлов коммита в Git
bytestream 28.01.2025
Система контроля версий Git представляет собой мощный инструмент для управления изменениями в программном коде и других файлах проекта. В основе работы Git лежит концепция коммитов - снимков. . .
Как записать только часть изменений файла в Git
bytestream 28.01.2025
В процессе разработки программного обеспечения часто возникает необходимость сохранить только определенные изменения из множества внесенных правок в файлах. Система контроля версий Git предоставляет. . .
[golang] 80. Remove Duplicates from Sorted Array II
alhaos 28.01.2025
В предоставленном упорядоченном по возрастанию целочисленном слайсе, оставить уникальные элементы полюс один возможный дубликат. Вернуть количество таких элементов. / / . . .
Что такое внедрение зависимостей и для чего оно применяется
bytestream 27.01.2025
В современной разработке программного обеспечения одной из ключевых проблем является управление зависимостями между различными компонентами системы. Внедрение зависимостей (Dependency Injection, DI). . .
Как установить cellpadding и cellspacing в CSS
bytestream 27.01.2025
При создании веб-страниц с табличными данными разработчики часто сталкиваются с необходимостью правильного оформления внутренних и внешних отступов в таблицах. В традиционной разметке HTML для этих. . .
Чем отличаются public, protected, package-private и private в Java
bytestream 27.01.2025
В языке программирования Java механизм модификаторов доступа играет ключевую роль в реализации одного из фундаментальных принципов объектно-ориентированного программирования - инкапсуляции. . . .
Зачем нужно explicit в C++. Преобразование типов
bytestream 27.01.2025
В мире программирования на C++ управление преобразованием типов данных играет crucial роль в создании надежного и безопасного кода. Язык C++ предоставляет множество механизмов для контроля над. . .
Как создать удалённую (remote) ветку в Git
bytestream 27.01.2025
Система контроля версий Git стала неотъемлемой частью современной разработки программного обеспечения, предоставляя разработчикам мощные инструменты для управления кодовой базой. Одним из ключевых. . .
Как создать утечку памяти в Java
bytestream 27.01.2025
Утечка памяти в Java представляет собой ситуацию, когда программа неэффективно использует доступную память, удерживая ссылки на объекты, которые больше не нужны для работы приложения. Несмотря на. . .
КуМир: как решать задачи на числа
bytestream 27.01.2025
КуМир (Комплект Учебных МИРов) представляет собой уникальную образовательную среду программирования, разработанную специально для обучения основам алгоритмизации и программирования. Эта система. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru