我一直在学习如何编写异常安全代码。即使我们没有使用异常,大多数实践建议像RAII管理内存或互斥也很有用,因为程序员不必担心手动管理资源。
但为什么我们需要例外?当我们没有得到我们想要的资源时,我们无法继续前进,并且该过程将会终止。然后操作系统可以担心释放资源。那么,我错过了什么?我的论点有什么问题?
答案 0 :(得分:2)
您理所当然地认为该计划在缺乏资源时无法继续进行。
如果让程序简单地死掉是一个选项,那么你可能不需要例外。再说一次,即使在这种情况下你也可能从中受益 - 抛出异常可以让事情得到清理,因此(例如)你写的文件会被刷新,这样你就不会丢失数据。 ; s仍在缓冲区中。
对于更多的情况,只是返回操作系统不是一个选项。在很多情况下,如果可能的话,您希望使用资源,但即使不是,您仍需要继续处理。