不可恢复错误的sudden death

在错误的发生点上退出模块(可能伴随着重启模块)。退出模块前往往需要先释放资源、保存关键数据、记录日志,等等。该方案的前提是在错误的发生点的上下文中必须要能够释放所有资源,要能够保存关键数据。要满足这个前提,可以用一个全局的沙盒来保存整个模块到当前为止申请的所有资源,从而在任何出错点上都可以将这个沙盒整个释放掉。也可以用智能垃圾收集,这样在出错点上只要记录日志和保存数据,把扫尾工作留给智能垃圾收集器完成。这个方案的弱点是如果释放资源是要按某种次序的就比较麻烦。
原文地址:https://www.cnblogs.com/taoxu0903/p/1135357.html