C++ 有没有一种方法可以捕获C++;?

C++ 有没有一种方法可以捕获C++;?,c++,C++,可能重复: C++中有没有方法能捕获所有异常?如果是的话,它的语法是什么 Merci是的,您可以捕获所有未通过内部try/catch通过catch块ing..处理的异常: try { // do some stuff } catch (...) { // catch any exceptions that weren't handled and/or rethrown in the try block } 您还可以将其与其他catche组合,但请确保它们位于catch(…)之

可能重复:

C++中有没有方法能捕获所有异常?如果是的话,它的语法是什么


Merci

是的,您可以捕获所有未通过内部
try
/
catch
通过
catch
ing
..
处理的异常:

try {
    // do some stuff
} catch (...) {
    // catch any exceptions that weren't handled and/or rethrown in the try block
}

您还可以将其与其他
catch
e组合,但请确保它们位于
catch(…)
之上,否则它们将被catch all屏蔽(您应该会得到一个编译器错误)。

是的,您可以捕获所有未处理的异常(而不是重新处理)通过内部
尝试
/
捕获
通过
捕获
阻塞
ing

try {
    // do some stuff
} catch (...) {
    // catch any exceptions that weren't handled and/or rethrown in the try block
}

您还可以将其与其他
catch
e组合,但请确保它们位于
catch(…)
之上,否则它们将被catch-all掩盖(您应该会得到一个编译器错误)。

您可以捕获像这样的所有异常

try{
    // ...
} catch (...) {
    // ...
}
然而,一个更有用的方法是捕获特定的异常,然后最终落到(…)


您可以捕获所有这样的异常

try{
    // ...
} catch (...) {
    // ...
}
然而,一个更有用的方法是捕获特定的异常,然后最终落到(…)


否,您无法捕获所有异常,因为您无法捕获嵌套在
try/catch
块中的另一个处理程序已捕获的异常。

否,您无法捕获所有异常,因为您无法捕获嵌套在
try/catch
块中的另一个处理程序已经捕获的异常;你是指所有异常还是所有未处理的异常?毕竟,您可以像Seth提到的那样将入口点包装在一个try-catch块中,但是如果有内部代码显式处理异常并让程序继续,它就不会命中入口点catch块;在“调试”菜单上,转到“异常”选项,您可以选择在异常发生时VS stop选项(即使已处理)和其他一些选项。顺便说一句,这通常是“糟糕的形式”。特别是如果你做了类似于
的事情,尝试{…}catch(…){;}
(即默默地吃掉任何/所有可能的异常);你是指所有异常还是所有未处理的异常?毕竟,您可以像Seth提到的那样将入口点包装在一个try-catch块中,但是如果有内部代码显式处理异常并让程序继续,它就不会命中入口点catch块;在“调试”菜单上,转到“异常”选项,您可以选择在异常发生时VS stop选项(即使已处理)和其他一些选项。顺便说一句,这通常是“糟糕的形式”。特别是如果您执行类似于
try{…}catch(…){;}
(即,默默地吃掉任何/所有可能的异常)。这不一定会捕获任何异常,因为在内部try-catch块中处理且不停止程序执行的异常不会冒泡到此为止。@RussC这是真的,但是用C++来捕捉每一个异常是不可能的。同意,但是你的措辞无意误导;只想确保OP知道异常范围。@ RSSSC OK,我澄清了一点。这不一定会捕获任何异常,因为在内部TIGET catch块中处理的那些程序不停止执行。@ RussC是正确的,但是用C++来捕获每一个异常是不可能的。但你的措辞是无意中误导的;只是想确保OP知道异常范围。@RussC好的,我澄清了一点。