В логе ошибок вместо причины сбоя написано просто 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
