![]() |
1
7
取决于你所说的“继续”。无论什么操作需要资源都会失败:这就是“需要”的意思。因此,当您希望在出现错误后继续时,可能会编写如下代码:
这就是为什么只有在有值得做的事情时才应该捕捉异常(在本例中,报告失败并继续下一个Thingym)。 如果要在失败时重试,但仅当构造函数失败时,而不是其他任何失败时:
这或多或少是
如果要在失败时尝试其他资源:
如果“use v”和“use w”基本上是相同的代码,那么重构成一个函数并从两个地方调用它。你的职能在这一点上做了很多工作。 |
![]() |
2
7
如果RAII构造函数抛出,则在抛出点之前绑定到RAII对象的所有资源都将被正确清理。C++规则是合理设计的,以保证。
如果你的
所以如果你因此使用RAII,你不需要手册
|
![]() |
3
2
|
![]() |
4
0
所有使用v的代码都需要在try块中。如果问题是如何缩小引发异常的代码的范围,则可以使用某种标志来指示您在try块中的位置,如下所示:
|
![]() |
AstralHex · 矩阵乘法代码工作不正常 5 月前 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 5 月前 |
![]() |
Die4Toast · 递归调用成员箭头运算符-> 5 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 5 月前 |