170 похожих чатов

Привет. Тут столкнулся с проблемой. Есть виртуальные методы в базовом классе,

перегружаю в ребенке методы и выбрасываю исключение, но исключение улетает, пролетая main и другие места с catch. Пробовал catch (...) — ничего, пробовал ставить throw в не-virtual методы — работает.
Кто-нибудь сталкивался с подобным? К сожалению, код не могу предоставить, по причине — многа, а воспроизвести в минимальном примере не смог. использую clang, может баг, но что-то сомневаюсь?

Кратко: Выкидываю далеко в коде ребенка std::exception, ловлю const std::exception &, но exception будто пролетает всё и прерывает программу:
terminate called after throwing an instance of 'std::logic_error'

16 ответов

15 просмотров

Исключение, которое вызывает terminate, точно из этого метода вылетает?

> Выкидываю далеко в коде ребенка std::exception > terminate called after throwing an instance of 'std::logic_error'

hazer_hazer- Автор вопроса
Sergey Skvortsov
Исключение, которое вызывает terminate, точно из э...

у меня логика линейная очень. то есть, main -> class -> class -> class и тд

hazer_hazer- Автор вопроса
hazer_hazer
у меня логика линейная очень. то есть, main -> cla...

а ловлю я очень рано, и есть в main ловля на Uncaught exception на всякий

hazer_hazer- Автор вопроса
hazer_hazer
у меня логика линейная очень. то есть, main -> cla...

Запуск в gdb что скажет? Выбрасывается исключение в том же методе?

hazer_hazer
не вижу противоречий

Что написано в строчке, которая бросает исключение? throw std::logic_error...?

hazer_hazer- Автор вопроса
Alexander Karaev
Что написано в строчке, которая бросает исключение...

агась. пробовал всякое, и просто throw std::logic_error и через свои методы для кастомных ошибок — результат один, если в виртуальном методе, то пролетает

hazer_hazer
агась. пробовал всякое, и просто throw std::logic_...

Это единый бинарь? Нет никаких библиотек или странной линковки?

hazer_hazer- Автор вопроса
Alexander Karaev
Это единый бинарь? Нет никаких библиотек или стран...

нуу.... есть либа header-only подключенная. но она в этом месте не используется уже

hazer_hazer
нуу.... есть либа header-only подключенная. но она...

Вопрос скорее в том, не кидается ли исключение из динамической библиотеки, например

По пути нигде нет noexcept функций?

hazer_hazer- Автор вопроса
Alexander Karaev
По пути нигде нет noexcept функций?

хммм... об этом не подумал, проверю

Похожие вопросы

Обсуждают сегодня

Сообщение* в закодированном виде. То есть, просто сделать sendMessage?text=Привет бла-бла! не получится, надо в HEX переводить, и добавлять процент, типа такого: sendMessage?t...
КТ315
21
А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
Всем привет. Испытываю проблемы в работе БД, а именно огромного роста логов, такого характера: 024-05-16 18:39:07 +05 sentry sentry [unknown] 1050169 7-1 app-sentry01.corp.ru>...
Alexey
2
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Хм. А телеграм апи работают через HTTP?
The Bird of Hermes
14
Почему Telegram пишет, что объект media не найден, хотя на самом деле я его передаю? Делаю на urllib, без зависимостей, так надо. Вызываю метод sendMediaGroup с таким JSON: ...
Alexey S
1
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
20
В дельфе нет никакого коробочного (без установки третьих либ) способа получить CallStack с расшифровкой отладочных символов?
notme
7
Я тут за тем, чтобы задать вопрос, так как не знаю ассемблер, учу с/с++. Короче, насколько дорога операция перехода в функцию при ее вызове? Дело в том, что в с++ есть макросы...
Максим Рябцев
12
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
Карта сайта