Вступить в клуб →
лёгкаявопросООП, исключения и дизайн классов

В логе ошибок вместо причины сбоя написано просто std::exception

try {
    saveReport(path);   // бросает std::runtime_error("disk full: /var/reports")
} catch (std::exception e) {
    log.error("save failed: {}", e.what());
}

В логе: save failed: std::exception. Почему потерялся текст ошибки?

  • Исключение поймано по значению и срезано
  • runtime_error не передаёт текст в what()
  • what() работает только в отладочной сборке
  • Текст теряется при выходе из функции saveReport

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела