C语言下的错误处理的问题
下面是三种C语言的错误处理,你喜欢哪一种?还是都不喜欢?
/ 问题: 不充分,而且很容易出错,前面成功分配的资源,后面出错需要帮助释放 /
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;
}
/ 问题: 使用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;
}
/ 问题:太多的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;
}
转载于酷壳CoolShell 无删改 仅以此纪念陈皓(左耳朵耗子)
曾经用 postman ,总共差不多 1000 多个接口吧,卡到不行,实在没法用了…… 后面换了 RapidAPI ,免费的,最近一直无法同步成功,报 500 错误,描述信息:…
大家好,我是一名来自上海的独立开发者。 自从 2024 年 12 月份决定走独立出海之路后,开始专注于出海 AI 产品的开发。 目前已经完成了第一个 AI 产品的开发,欢迎大家…
入坑理由 之前家里群晖是用的 5105 的小主机,用 2 块 4T M.2 硬盘做了 Raid1 ,用来做照片备份和一些数据的存储,也用在 PVE 虚拟机上挂载 NFS 用作数…