Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
noexcept вместо throw().throw() работает для всех методов. Что в общем-то равноценно тому же noexcept из нового стандарта, потому что инструкцию типа throw(std::runtime_error) студия всё равно заигнорит.Что, если кто-то проанализирует исключение и решит передать его дальше?
Что, если возникнет исключение в самом визиторе?
У нас принято, что исключения не хранят в себе никаких сообщений об произошедшей ошибке( так как за ними придется лезть в ресурсы )
s/_exception.visit( visitor );/_exception.accept( visitor );/
В этой статье я попытался поделиться решением, которое как мне показалось, оптимальное для решения моих задач.
std::string getErrorText( ResourceManager & _res )
Паттерн Visitor для обработки иерархии исключений