使用__try __finally和do while

在编写代码时,比如一个函数中有四个操作步骤,分别为1、2、3、4。每一步都依赖前一步骤成功才能继续。

如果每一步都会生成资源,然后退出函数时需要释放。

如果在每一步之后都检查成功,失败就释放资源,那么第二步骤失败需要释放第一步骤资源,第三步骤失败需要释放第一、第二步骤资源,这样代码冗余,而且容易忘记释放资源,在这种情况下可以使用如下两种结构

1、__try __finally异常终止结构

2、do while结构

在__try __finally结构中,如果某一步骤失败,直接使用__leave编译器关键字,就可以到达finally。在__finally代码块中统一检查资源并释放。

在do while结构中可以使用如下:

do

{

  //代码只会执行一次

}while(FALSE)

由于while后是FALSE,所以do中的代码只会执行一次,如果某一步骤失败,直接使用break关键字跳出do while代码块。代码可读性也比较好。

 

posted @ 2022-11-09 10:28  psj00  阅读(26)  评论(0编辑  收藏  举报