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 无删改 仅以此纪念陈皓(左耳朵耗子)
佩服小米开发团队的技术水平,冲高端的数字型号版本出现这种基础的体验 bug ,并且持续几个月时间都没改好。 视频链接: youtu.be/a0vCJ6f7frA 老问题了,…
都行 这不得看自己喜欢吗 js Java 挺好的,没必要搞个第二语言,都差不多 我觉得应该是 go Kotlin->C#-> Go 打算这么学 语言有区别?难道不…
几年前在做的一款软件,还比较有技术含量,其中一些技术还申请了专利。这两天帮别人测试的时候,发现某款软件对我之前做的那个进行了 copy ,连 ppt 都是抄我们的,按照测试的情…
合速度