Profi_GMan
@Profi_GMan

Как ловить и обрабатывать любые исключения?

Доброго времени суток!
В с# можно написать такую конструкцию:
try {
...
}
catch(Exception ex) {
...
Console.WriteLine(ex.message);
...
}

И тогда будут ловиться и обрабатываться все исключения.
Каким образом можно подобное провернуть в c++? Да, я знаю, что c# - это managed язык, а плюсы - нет, но всё-же.
Потому что с помощью catch(...) можно поймать всё, но расспознать, что поймал - нет. Заранее спасибо!
зы пишу на qt (на всякий случай говорю)
  • Вопрос задан
  • 183 просмотра
Решения вопроса 2
Nipheris
@Nipheris Куратор тега C++
В C++ с точки зрения языка у исключений нет базового класса или какого-то другого общего типа, представляющего всякое значение, летящее в исключении. Не забывайте, что выбросить вы можете, к примеру, целое число (хоть это и не рекомендуется).

Поэтому встречный вопрос - если форма значения в исключении заранее неизвестна, как можно сделать что-либо с этим значением? Что вы хотите "распознать", когда поймали исключение? Какую операцию вы хотите выполнить?

Вообще посмотрите на std::current_exception, но убедитесь, что оно вам подойдёт.
Ответ написан
maaGames
@maaGames
Погроммирую программы
catch( std::exception & e )
{
}
catch(...)
{
}

Только так. Указать конкретные и/или базовые классы для перехвата конкретных типов исключений и (...) для перехвата всего остального.
На самом деле, ещё останутся структурные исключения, которые не перехватываются даже (...) и их нужно перехватывать отдельно...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы