不与 try 和 catch 一起使用时会throw
做什么?喜欢:
if (IsEmpty()) throw "Stack is empty, Cannot delete";
它会在控制台中打印吗?
但是当throw
包含一些 int 或 char 作为它的参数时,它会被抛出去捕获;在这种情况下会发生什么?
不与 try 和 catch 一起使用时会throw
做什么?喜欢:
if (IsEmpty()) throw "Stack is empty, Cannot delete";
它会在控制台中打印吗?
但是当throw
包含一些 int 或 char 作为它的参数时,它会被抛出去捕获;在这种情况下会发生什么?
C++ 运行时会有一些类似的东西(这并不完全是它的样子,但你可以认为它是这样工作的,除非你正在处理一些非常特别的东西):
void BeforeMain()
{
try
{
int res = main();
exit(res);
}
catch(...)
{
cout << "Unhandled exception. Terminating..." << endl;
terminate();
}
}
您可以这样做,如果您没有放置明确的 try catch 块,它将不会在您的代码中的任何地方被捕获。Windows 使用 SEH 机制来处理,您可以在其中使用未捕获的异常过滤器来找出相同的情况。
有关更多详细信息,请参阅此帖子 捕获不使用 try/catch 引发的异常