从构造函数的初始值设定项列表中捕获异常

2023-12-11

这是一个好奇的。我有一个类 A。它有一个类 B 的项目,我想使用初始化列表在 A 的构造函数中初始化它,如下所示:

class A {
    public:
    A(const B& b): mB(b) { };

    private:
    B mB;
};

有没有办法在仍然使用初始化列表方法的同时捕获 mB 的复制构造函数可能引发的异常?或者我是否必须在构造函数的大括号内初始化 mB 才能进行 try/catch?


读一读http://weseetips.wordpress.com/tag/exception-from-constructor-initializer-list/)

编辑:经过更多挖掘,这些被称为“函数尝试块”。

我承认在我去寻找之前我也不知道这一点。你每天都会学到一些东西!我不知道这是否是对我现在很少使用 C++、我缺乏 C++ 知识,或者是对这门语言中常见的拜占庭特性的控诉。啊好吧 - 我还是喜欢它:)

为了确保人们不必跳转到另一个站点,构造函数的函数 try 块的语法如下:

C::C()
try : init1(), ..., initn()
{
  // Constructor
}
catch(...)
{
  // Handle exception
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从构造函数的初始值设定项列表中捕获异常 的相关文章

随机推荐