【发布时间】:2019-05-10 12:59:39
【问题描述】:
目标是完全处理一个循环并抛出之后可能发生的任何异常:
for (...) {
try {
// code that could throw
} catch (const ExceptionObj &ex) {
// save ex and rethrow after the loop
}
}
这样做的最佳做法是什么?在我的特殊情况下,保存 任何 异常是可以的。
我有几个想法:
将
ex复制到ExceptionObj值。问题:当 ex 有子类或需要处理更多异常时,根本无法很好地扩展。在
ExceptionObj中有一个clone方法,它返回堆上的副本。问题:不适用于第三方异常。
【问题讨论】:
标签: c++ c++11 exception-handling