zoukankan      html  css  js  c++  java
  • C语言下的错误处理的问题

    下面是三种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;
    }
  • 相关阅读:
    cs231n--详解卷积神经网络
    Spring 2017 Assignments2
    深度神经网络基础
    cs231n官方note笔记
    Spring 2017 Assignments1
    问题
    win7下解决vs2015新建项目,提示“未将对象引用设置到引用实例“的问题
    项目二:人脸识别
    ubutu强制关闭应用程序的方法
    将caj文件转化为pdf文件进行全文下载脚本(ubuntu下亲测有用)
  • 原文地址:https://www.cnblogs.com/alantu2018/p/8503738.html
Copyright © 2011-2022 走看看