【发布时间】:2016-01-11 17:09:28
【问题描述】:
从多个函数调用中抛出异常一直到 main 的“正确”方法是什么?
我现在做的是例如:
void foo() {
...
try {
...
}catch(a1) {
...
throw(a2);
}
...
}
void baz() {
...
try {
foo();
}catch(a2) {
...
throw(a3);
}
...
}
等
必须有更好的方法来抛出结果并退出调用堆栈,而不会在途中捕获每个异常,是吗?
【问题讨论】:
-
如果你不需要,就不要抓住它们。
-
@πάνταῥεῖ 但它会一直回到 main 吗?
-
随便扔,让它一路掉下去。只需一个
try/catch将函数调用包装在main中,最终导致throw。 -
哦,太酷了,我不知道它是这样工作的。谢谢。我应该关闭它吗?
-
@kuhaku,这个特性是异常存在的全部原因。没有它,它们就不会比返回代码提供太多优势。
标签: c++ c++11 syntax exception-handling