gpt4 book ai didi

C函数错误: is it better to abort the function or simply exit the program?

转载 作者:行者123 更新时间:2023-12-03 08:04:43 25 4
gpt4 key购买 nike

标题说明了一切。由于 C 没有异常,我不确定如何处理错误。我想到了两者的优缺点:
中止:
基本上我的意思是返回一个错误代码(将在 .h 文件中声明,可能带有自己的 perror() 类似函数)并中止该函数,明显的优点是它可以帮助用户执行错误处理,但缺点是:

  • 如果函数在每次执行错误后都没有检查,并且确实发生了错误,那么随着程序的进行,它可能会导致大问题,并且用户将很难找到问题的根源。
  • 查看错误代码的头文件可能会很麻烦而且很烦人。
  • 错误代码可能与其他库中的错误代码或内置 C 错误代码冲突。

  • 退出程序:
    非常不言自明:一旦发现错误,将错误打印到 stderr并退出。这样做的好处是,如果错误消息足够详细,用户将很容易知道他们的代码出了什么问题并修复它,但主要的缺点是用户将无法编写任何可以处理可能发生的错误的代码。错误,而是不得不更改代码本身(当您需要输入或类似的东西时,它会成为一个更大的问题,其中有数百万可能由错误输入引起的错误)。

    最佳答案

    这在很大程度上取决于您的程序在做什么。一些程序(例如简单的命令行实用程序)只会在无效输入时中止,不会对用户体验和系统稳定性造成太大影响。用户将简单地纠正自己并重新运行。另一方面,如果它是一个安全关键系统,例如军事、医疗或运输设备(例如自动驾驶仪、起搏器等),则中止其程序将导致生命损失。或者按照评论中的建议 - 一个简单的文字处理器。如果他们在犯了一些愚蠢的错误导致一些程序错误之后失去了所有的工作,用户可能会非常不满意。
    因此,编写强大软件的一般方法是将您的错误分类为致命和非致命。非致命是您在正常程序运行期间可以预料到的,并且可以以允许程序继续运行的方式优雅地处理。致命的是由某些异常情况(硬件故障、缺少组件等)导致程序无法继续运行的情况。
    根据系统性质,您可能希望放松或收紧上述分类。

    关于C函数错误: is it better to abort the function or simply exit the program?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65847930/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com