В C ++ 17, каков правильный шаблон / подход к обработке коллекции множественных исключений?
Есть ли C ++ эквивалент C # AggregateException Class?
(Я знаю, что исключение, поскольку управление потоком данных является анти-паттерном.)
Это не обычная проблема, которую я вижу в C ++. Если вы планируете использовать библиотеку для многопоточной / многоядерной обработки, вы, возможно, не захотите проверить, что предлагает эта библиотека или как обрабатываются исключения. Если вам просто нужны такие возможности, вы можете сделать что-то вроде следующего (псевдокод):
struct AggregateExcpetions {
std::vector< std::variant< exception_type_1, exception_type_2, exception_type_3 > > m_exceptions;
}
Вместо использования варианта может быть проще использовать общий базовый класс — например, std::exception
или возможно std::runtime_error
,
struct AggregateExcpetions {
std::vector< std::unique_ptr<std::exception> > m_exceptions;
}
Других решений пока нет …