在异常 C++ 中抛出语法

throw syntax in exception c++

也许这是个愚蠢的问题,我是 C++ 的新手:

我阅读了一些关于异常机制的内容,在一些代码中我遇到了这行:

throw SomeClass();

这是什么意思? 是调用 class c'tor 然后抛出那个 class 的对象吗?

在其他示例中,我看到总是 "throw" 抛出一个实例(特定字符串或整数,在这里我很困惑,因为我知道 c'tor 没有 return类型。

我不明白这个表达式后面的"logic"...

是的。

更具体地说,这会构造一个临时对象并将其抛出。

首先,您应该抛出一些派生自 std::exception 的实例(尽管您可能抛出整数、C 字符串……,这通常很糟糕)。在某些情况下,您可能会抛出一个特殊的异常(std:bad_alloc 就是一个例子)。

然后,您总是通过调用构造函数抛出一个临时实例(必须构造):throw SomeClass();