|
|
1
1
是的,你可以避免像这样抛出析构函数
如果
你的
从析构函数中抛出意味着某种清理失败。可能是资源泄漏、数据无法保存、现在丢失或无法设置或还原某些内部状态。不管是什么原因,如果你能避免或解决这个问题,你就不必把它放在首位。
你对这种坏情况的解决方案(抛出析构函数)只有在你没有真正处于坏情况下才有效。实际上,如果你试着应用这个,你会发现没有什么东西可以写
没有这样的规则。堆栈展开期间抛出的问题是,如果未捕获的异常从析构函数中逃逸。如果析构函数在内部抛出并捕获异常,则对正在进行的堆栈展开没有影响。
|
|
|
2
1
这个
Try-catch通常是处理异常的方式,不管是在析构函数内部还是其他内部。 不过,在这种情况下,更好的解决办法是:
不用扔到这里,不扔会更简单。
因为这是允许的。 |