7.1.2 语义或“运行期”错误
语法错误的发现和处理是令人烦恼的,但在编程中会遇到一些真正“令人兴奋”的另一类型的错误——语义错误(semantic error)或称“运行期”错误(runtime error)。这类错误仅当运行一个脚本代码或其他程序时才会发现。换句话说完整有效的代码已经通过解释器或编译器的解释或编译,在执行时产生了错误。术语“运行期错误”通过是指语义错误的结果,也就是说这类错误存在于代码的语义中,当代码运行时它们才变成可见的。
这种区别来自于这种事实:程序编译器或解释器在处理程序代码之前必须建立一种内部代码的描述,涉及多种结构开头和结尾的匹配,以便标明每种结构包含什么内容,然后分析每个句子,以便知道如何执行这个句子。例如,如果在程序代码中有一个If Then … Else … End If 结构,解释器或编译器做的第一步工作就是分析哪些语句在“Then”的部分,哪些在“Else”部分。这一步的目的是,在对结构中的If条件进行测试之后,可以决定该到哪个分支去执行。
编译器(诸如在编程语言像Visual Basic和C++中见到的那种)和解释器(诸如用于像VBScript和JScript那样的脚本语言的解释器)之间真正区别在于:编...[ 查看全文 ]