编译期错误、连接错误

来源:互联网 发布:java面向对象的理解 编辑:程序博客网 时间:2024/04/29 18:10
程序开发过程的各个阶段都可能发生错误,可以将程序设计中的错误分成五类:
第一类,编译期错误。这是指在程序的编译过程中由编译程序识别或检查出来的错误,常称之为“语法错误”。诸如不符合规定的语句格式、对象说明与使用不一致、不正确的分隔符、不存在的标号、不正确的初始化数据、不恰当的循环嵌套等等。在编译期发现一个错误后,编译工作并不立即停止,而是尽可能多地找出源程序中的全部错误。
第二类,连接错误。这是指连接程序在装配目标程序时发现的错误,通常由于函数名书写错误、缺少包含文件或包含文件的路径错误等原因引起的。
第三类,运行期错误。这是指可执行程序执行过程中发现的错误。如在计算过程中遇到了除数为零的错误、求一个负数的平方根等等。编译系统发现这类错误后如无特殊指示通常告知一些适当信息,然后立即停止程序的执行。当然,为阻止这类错误的出现,程序设计者可在程序中编入一些由自己来检查这类错误的程序段,这可能更适合于自己的处理要求。
第四类,逻辑性错误。这类错误是在编译期、连接期和运行期都不能发现的错误。如程序中把log写成了log10,把x+y写成了x-y等。显然编译系统是无法查出这类错误的。
第五类,警告性错误。这类错误是指编译系统在编译阶段发现程序中有一些可疑的或含混不清的地方,如源程序中发现了一个定义过但从未使用过的变量。这类情况从语法上讲是正确的,因此一般不会停止编译,在大多数情况下不会阻止目标程序与可执行程序的生成、连接和运行。但是对这类错误不应掉以轻心,应仔细检查程序,这往往存在着某种潜在的运行期错误。
排错是非常困难的,有可能花费很长的时间。程序设计的目标应该是避免出现太多的问题。对减少排错能有所帮助的技术包括:好的设计、好的风格、边界条件测试、合理性检查、限制全局数据等等。
 
原创粉丝点击