вы классифицируете ошибки? чисто текстом? наследуете с int/enum ?
Обычно никак особо не обрабатывают эксепшны просто логируют и идут дальше
ключевой момент был именно в использовании исключений
Типом объекта исключения
наследуете с int/enum это про что?
Внутри уже по желанию: текст, код (std::system_error), etc.
нужно же различать типы ошибок, причины ошибок
Ну можно ловить разные типы эксепшнов
По типу, если нет в std нужного, то свой класс для ошибки
а если >100 типов ошибок?
И у тебя 100 видов ошибок из функции может вылететь? А если 100 кодов ошибок? Разницы неособо
Тогда 100+ классов
и потом портянка из catch'ев ?
Тип исключения говорит о "классе" исключения: io, ошибка при каком-нибудь парсинге и пр А код внутри - о конкретном месте, о конкретной ошибке Например так можно. Ну в сущности, как std::system_error
Вот как выше Георгий сказал
Если в одном месте нужно обрабатывать много эксепшенов, то что-то не так с архитектурой. Если просто залогировать, то можно и по базовому классу всё ловить
Использую std::error_code/std::system_error со своим енамом, мне нравится как это реализовали в stl
каким образом туда входит enum ?
https://akrzemi1.wordpress.com/2017/07/12/your-own-error-code/ Вот статья по этому поводу
не понравилось. почему в стл нет шаблонного такого чтоб тип энам вставить
Обсуждают сегодня