unique_ptr<X> f()
{
unique_ptr<X> p(new X); // or {new X} but not = new X
// do something - maybe throw an exception
return p; // the ownership is transferred out of f()
}
Run Code Online (Sandbox Code Playgroud)
当异常抛出时,为什么我们关心对象X的存在,为什么我们关心它占用的内存呢?
处理异常后,该过程将很快终止,内存将被释放,为什么我们关心这个?
因为在大多数应用程序中,进程不会立即终止,并且您不希望泄漏内存.你也可以问为什么你应该关心内存泄漏.
处理异常后,该过程将很快终止
谁说的?
如果您在异常情况下所做的一切都会终止,那么是的,您可以忽略它.但是,你应该抓住很多例外.在特殊情况下使代码相对防弹并不是件坏事.
一旦你决定真正开始尝试捕捉异常而不是忽略它们,你需要RAII.
| 归档时间: |
|
| 查看次数: |
249 次 |
| 最近记录: |