5
最终价格昂贵
对于在退出函数之前必须进行资源清理的代码,这两种执行方法之间在性能上存在重大差异。 在每个return语句之前清理资源 void func() { login(); bool ret = dosomething(); if(ret == false) { logout(); return; } ret = dosomethingelse(); if(ret == false) { logout(); return; } dootherstuff(); logout(); } 最终清除资源 void func() { login(); try { bool ret = dosomething(); if(ret == false) return; ret = dosomethingelse(); if(ret == …