rem*_*ezx 16 c++ design-patterns exception c++11
我需要为函数编写一个包装器.其目的是缓存结果以及可能的函数异常.它应该如下工作:在第一次执行期间,它应该执行函数并存储函数返回的结果(或异常).在下次执行期间,它应返回先前存储的结果或重新抛出捕获的异常.
问题是,我想存储异常类型.所以基本上我想捕获每种类型的异常,并在将来重新抛出它而不会丢失它的类型.
我正在使用C++或C++ 11,因此非常感谢使用其中一种语言的任何解决方案.
por*_*ges 22
你在找std::exception_ptr.
您可以使用std::current_exception(),获取当前捕获的异常,存储结果std::exception_ptr,稍后将其抛出std::rethrow_exception(std::exception_ptr)
在cppreference维基上有一个很好的使用示例.