可能重复:
How can I catch all types of exceptions in one catch block?
在C ++中有没有办法捕获所有异常?如果是这样,那将是什么语法?
的Merci
答案 0 :(得分:8)
是的,你可以通过try
catch
catch
内部...
/ try {
// do some stuff
} catch (...) {
// catch any exceptions that weren't handled and/or rethrown in the try block
}
块来捕获所有未处理(而不是重新抛出)的异常:
catch
您也可以将其与其他catch (...)
结合使用,但要确保它们高于{{1}},否则它们将被全部捕获(并且您应该收到编译器错误)。< / p>
答案 1 :(得分:5)
你可以捕捉到这样的所有例外
try{
// ...
} catch (...) {
// ...
}
然而,更有用的事情是捕获特定的异常,然后最终落入(...)
try{
// ...
} catch (const std::exception& ex) {
// ...
} catch (const std::string& ex) {
// ...
} catch (...) {
// ...
}
答案 2 :(得分:1)
不,您无法捕获所有异常,因为您无法捕获嵌套在try/catch
块中的另一个处理程序已捕获的异常。