致命错误和非致命错误有什么区别?


回答 1:

这听起来像是循环的,但是:致命错误是致命的。就像这样,无论您想做什么,都无法继续,而现在已经死了。那就是致命的意思。

非致命错误表示发生了严重错误,但我们可以恢复并继续。

让我们以汽车为例:

  • 胎是非致命错误。在修理好之前不能开车,但是可以穿上备用零件,然后继续直到修补或更换轮胎。正面碰撞是致命的错误。您的汽车撞毁了,另一辆汽车撞毁了,它们都不会再次行驶。而且,很可能有一个或多个车上的乘客被杀死。显然,是致命的。

所以……回到编程。

如果调用malloc并返回NULL,则不一定致命。您无法分配内存,但仍然可以继续。也许您可以释放一些其他资源。

如果您遇到的错误导致无法恢复的数据损坏并丢失了工作,那将是致命的。您做错了事,丢失了数据,无法恢复。

现在,这些并不是编程上下文中“致命”和“非致命”的唯一用法。但是,它应该使您知道如何思考。