什么是运行时错误,以及如何修复它们?

当您尝试启动一个程序并收到一条显示“运行时错误”的错误消息时,您难道不讨厌吗?不幸的是,尽管经常惹恼人们,但可怕的运行时错误并没有很好地解释自己以及究竟发生了什么。

运行时错误有不同的形状和大小,它们因中断工作流程而臭名昭著。因此,以下是一些更常见的运行时错误、导致它们的原因以及出现时如何解决它们。

什么是运行时错误?

程序在当前运行时发生运行时错误。运行时错误是由它们在程序编译后发生的方式定义的,而不是在程序开发过程中发生的。运行时错误令人沮丧的是,它们可能导致程序意外关闭,有时很难确定单一原因。

不同类型的运行时错误

可能会发生几种不同类型的运行时错误,因此最好了解它们是什么以及导致它们的原因。这样,当一个人抬起丑陋的脑袋时,你就会确切地知道该怎么做。

1. 除以零误差

您的计算机在处理数据时会进行大量数学运算,这意味着即使在执行简单的算术运算时也会出现错误。例如,一种常见的运行时错误称为“除以零”错误。这个鼻子很漂亮;当您的计算机进行计算并尝试将数字除以 0 时,就会发生这种情况。

当你试图将一个数除以 0 时,你会得到一个未定义的数。当计算机执行此操作时,它不知道如何处理未定义的数字并导致程序崩溃。

不幸的是,这不是您可以解决的错误类型。如果您发现被零除错误,最好的办法是联系软件开发人员。

2. 安装不完整导致的错误

有时,在安装过程中会出现问题。程序无法正确安装的原因有很多,当发生这种情况时,可能会导致问题。

有时,某些文件没有安装,或者安装包有问题。在任何情况下,如果程序没有正确安装,程序需要运行的某些文件可能不存在,从而导致运行时错误。在这种情况下,最好的办法是重新安装程序或尝试寻找不同版本的安装包。

3. 软件编程中的逻辑错误

不管程序员有多好,总会偶尔出现错误。逻辑错误是一种运行时错误,可能指向编码中的错误。

相关:编程错误的类型以及如何避免它们

热门话题:编码有点复杂。有成千上万个字符需要正确输入才能使程序正常运行。如果代码中有任何拼写错误,可能会导致意外的输出。正因为如此,程序可能会出错,甚至完全崩溃。

最好的办法是联系软件开发商。您还应该检查您是否正在运行最新版本的软件。以后的版本可能会解决这个问题。

4. 内存泄漏导致的错误

另一个非常常见的运行时错误是内存泄漏错误。当程序运行时,它会占用一些 RAM。然后,当程序终止时,它会通知系统它已完成并释放该 RAM,以便其他程序可以使用它。但是,有时程序不会这样做,并且程序会继续使用新的 RAM,直到用完为止。

相关:如何对 Windows 中的低 RAM 或内存泄漏进行故障排除

想象一个有 10 间公寓的公寓大楼,其中 8 间已被占用。如果三个租户在没有告诉公寓管理人员的情况下离开,办公室认为只有五间公寓仍有八间公寓被占用。然后,当另外三个人想要搬进来时,办公室会以没有空间容纳他们为由拒绝一个人。

内存泄漏会导致 RAM 问题、性能缓慢和程序崩溃。如果发生这种情况,一个好的解决方案是重新启动计算机。这将完全清除所有 RAM。

5. 非零退出状态错误

软件由多行代码组成。每条生产线都需要正常运行,以保持一切顺利运行。不幸的是,有时线路无法按预期方式工作,从而导致错误。

一种此类错误称为非零退出状态错误。对于不同的编码系统,每一行代码都被赋予一个退出状态,这是一个表明它是否成功运行的数字。如果计算机成功运行该线路,则它会获得 0 作为退出状态。如果它介于 1 和 255 之间,则说明失败。一个很好的例子是,如果您运行一行试图访问计算机上不存在的文件,它可能会得到退出代码 1。

相关:使用 Python 检查文件是否存在的方法

6. 溢出错误

编码总是有限制的。例如,当试图将一个数字放入一个变量(也就是一个属性)时,这个数字的大小是有限制的。如果您尝试分配比该限制更大的数字,则会出现溢出运行时错误,这可能导致程序无响应。

当您收到溢出错误时,您应该首先检查您的软件版本是否为最新版本。如果您运行的是最新版本,请尝试重新安装该软件。

7. 分段错误错误

分段错误是最常见的运行时错误类型。程序在访问和写入内存时需要遵循某些规则。当这些规则中的一些被破坏时,您将面临出现分段错误错误的风险。

发生分段错误错误的方式有多种。一些常见的原因是:

  • 当程序尝试写入只读内存时
  • 当程序尝试访问不允许访问的内存时
  • 当程序尝试取消引用已释放的内存或 NULL 指针时
  • 当程序尝试访问的数据超出其允许范围时
  • 当程序尝试写入不允许写入的位置时

如果您遇到这些问题之一, Stack Overflow有一个很好的解决方案列表,您可以尝试,所以一定要看看。

大量运行时错误

这只是运行时错误的冰山一角。这个列表还在继续,因为有很多错误,甚至还有更多导致它们的方法。最好的办法是研究更多的运行时错误,如何识别它们,以及如何解决它们;它可以帮助避免很多麻烦。