博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言下的错误处理的问题
阅读量:6161 次
发布时间:2019-06-21

本文共 943 字,大约阅读时间需要 3 分钟。

下面是三种C语言的错误处理,你喜欢哪一种?还是都不喜欢?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* 问题: 不充分,而且很容易出错,前面成功分配的资源,后面出错需要帮助释放 */
int
foo(
int
bar)
{
        
int
return_value = 0;
        
int
doing_okay = 1;
        
doing_okay = do_something( bar );
        
if
(doing_okay)
        
{
                
doing_okay = init_stuff();
        
}
        
if
(doing_okay)
        
{
                
doing_okay = prepare_stuff();
        
}
        
if
(doing_okay)
        
{
                
return_value = do_the_thing( bar );
        
}
        
return
return_value;
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/* 问题: 使用goto语句是很不好的 */
int
foo(
int
bar)
{
        
if
(!do_something( bar )) {
                
goto
error;
        
}
        
if
(!init_stuff( bar )) {
                
goto
error;
        
}
        
if
(!prepare_stuff( bar )) {
                
goto
error;
        
}
        
return
do_the_thing( bar );
error:
        
return
0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
/* 问题:太多的if嵌套了,无法阅读 */
int
foo(
int
bar)
{
        
int
return_value = 0;
        
if
(do_something( bar )) {
                
if
(init_stuff( bar )) {
                        
if
(prepare_stuff( bar )) {
                                
return_value = do_the_thing( bar );
                         
}
                
}
        
}
        
return
return_value;
}

转载于:https://www.cnblogs.com/alantu2018/p/8503738.html

你可能感兴趣的文章
Android图片压缩(质量压缩和尺寸压缩)
查看>>
nilfs (a continuent snapshot file system) used with PostgreSQL
查看>>
【SICP练习】150 练习4.6
查看>>
HTTP缓存应用
查看>>
KubeEdge向左,K3S向右
查看>>
DTCC2013:基于网络监听数据库安全审计
查看>>
CCNA考试要点大搜集(二)
查看>>
ajax查询数据库时数据无法更新的问题
查看>>
Kickstart 无人职守安装,终于搞定了。
查看>>
linux开源万岁
查看>>
linux/CentOS6忘记root密码解决办法
查看>>
25个常用的Linux iptables规则
查看>>
集中管理系统--puppet
查看>>
Exchange 2013 PowerShell配置文件
查看>>
JavaAPI详解系列(1):String类(1)
查看>>
HTML条件注释判断IE<!--[if IE]><!--[if lt IE 9]>
查看>>
发布和逸出-构造过程中使this引用逸出
查看>>
使用SanLock建立简单的HA服务
查看>>
Subversion使用Redmine帐户验证简单应用、高级应用以及优化
查看>>
Javascript Ajax 异步请求
查看>>