C如何处理泛型catch处理程序中抛出的异常

有没有办法处理泛型catch块中抛出的异常.

try
{
    throw ;
}
catch(...)
{
// how to get handle to exception thrown
}

谢谢

最佳答案
你可以使用std::current_exception.

从cppreference重新排列:

#include <string>
#include <exception>
#include <stdexcept>

int main()
{
     eptr;
    try {
        std::string().at(1); // this generates an std::out_of_range
    } catch(...) {
        std::exception_ptr eptr = std::current_exception(); // capture
    }
} 

在catch(…)块内部,exception_ptr eptr捕获了当前异常. std :: exception_ptr引用的异常对象保持有效,只要至少有一个引用它的std :: exception_ptr:std :: exception_ptr是共享所有权智能指针.

转载注明原文:C如何处理泛型catch处理程序中抛出的异常 - 代码日志