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好的,我澄清了一点。