总结使用goto语句和标号进行出错处理的一个代码框架,其核心思想是释放资源的顺序和申请资源的顺序相反,每一次释放资源的操作之前定义一个标号,每次系统操作失败后跳转到指定标号处,顺序释放所有的资源,其代码框架如下:
系统调用1:
没有资源,直接退出
系统调用2
失败跳转到err_1:;
系统调用3
失败跳转到err_2;
...
系统调用n
失败跳转到err_n-1;
err_n-1:
释放系统资源调用n-1申请的资源
err_n-2:
释放系统资源调用n-2申请的资源
。。。
err_1:
释放系统调用1申请的资源
return res;