【发布时间】:2020-08-07 09:36:49
【问题描述】:
这将超出范围,因此我无法使用它。
try
{
SomeClass someObject({});
}
catch (std::exception & e)
{
}
someObject(x); // someObject does not exist because it goes out of scope
【问题讨论】:
-
将用法移到 try 语句块中
-
.......但是......但是......可能需要数百行代码进入那里。那不是很糟糕吗?编辑:好吧,也许是 10 行...
-
把它想象成“我正在用 try {} 包装现有的行”
-
pfft 耸耸肩 好吧!我会同意的。
-
如果默认构造函数是
noexcept,并且有一个,当然可以在try块外定义变量,然后在try块内复制赋值。但是,如果施工失败,您真的要继续吗?
标签: c++ class oop exception error-handling