区分语义错误、逻辑错误和运行时错误

问题描述 投票:0回答:1

今天,我遇到了这个考试题(这和考试题不完全一样,但是思路是一样的):

Which of the following codes is semantic error?

A) a = 'abc' + 123

B) for i in range(5)

C) b = 7/0

D) [i for i in range(10**19)]

正如我在讲座中所学到的,一般来说,有四种类型的错误:语法错误、运行时错误、逻辑错误和语义错误。在此基础上,我认为返回ZeroDivisionError的

C
是运行时错误、逻辑错误和语义错误。然而,在我看来,
A
也是语义错误,因为也许程序员想要做
a = 'abc' + '123'

我知道这个话题已经被提起很多次了,但我仍然很困惑,无法发现这些类型的错误之间的区别。如果可以的话,您能否回答我上述问题并区分这些定义?预先感谢您!

python runtime-error syntax-error
1个回答
0
投票

语义错误是指程序员误解了编程语言的工作原理并编写了在语言规则的上下文中没有意义的代码。代码在语法上可能是正确的,但它违反了语言的规则或“语义”。因此,第一段代码是语义错误。

第二段代码是SyntaxError,第三段代码是RuntimeError,最后一段代码要么是MemoryError,要么是TimeoutError。

© www.soinside.com 2019 - 2024. All rights reserved.