Java处理异常通过try
{}catch(Exception e)//或者catch(Throwable t){}可以处理所有的异常了。
来处理所有的异常。但是无法得知是什么异常类型,只能给出自己定制的异常信息。
当然为了提出这个一场信息,处理过程依然不够java优雅,
需要一个再次扔出异常指针的过程。
代码:
catch(...)
{
std::exception_ptr eptr= std::current_exception(); // capture
handle_eptr(eptr);
}
void handle_eptr(std::exception_ptr eptr) // passing by value is ok
{
try {
if (eptr != std::exception_ptr()) {
std::rethrow_exception(eptr);
}
} catch(const std::exception& e) {
std::cout << "Caught exception \"" << e.what() << "\"\n";
}
}