我似乎无法从C ++构造函数中为在堆栈上实例化的对象抛出异常(而不是使用new关键字分配的动态对象)。这是如何完成的?
SELECT t.level, f.family
FROM families f
JOIN (
SELECT lf.id_family, l.level
FROM level_families lf
JOIN levels l
ON lf.id_levels=l.id_levels
) t
ON f.id_family=t.id_family;
答案 0 :(得分:0)
您需要重新编码代码:
int main(void)
{
try {
AClass obj;
obj.method();
} // obj is only valid in the scope of the try block
catch (std::exception& e)
{
}
}
如果您需要捕获&#34的异常,则无法创建一个AClass对象"与其他异常分开,然后为该情况抛出一个唯一的异常,并为该类型的异常添加一个特定的catch
子句:
class no_create : public std::runtime_error {
// ...
};
try {
AClass obj;
obj.method();
}
catch (no_create const &e) {
std::cerr << e.what() << "\n";
}
catch (std::exception const &e) {
// process other exceptions
}