При вызове исключений в деструкторе следует помнить о следующем:
- Завершение программы: Если исключение выбрасывается из деструктора, вызываемого в процессе раскрутки стека (когда уже обрабатывается другое исключение), это приводит к std::terminate() и завершению программы.
- Неопределенное поведение: Если исключение выбрасывается из деструктора объекта с автоматическим временем жизни, а вне области видимости этого объекта нет try-catch блока, который мог бы его поймать, это приводит к неопределенному поведению.
- Утечки ресурсов: Деструкто