提问人:Reyomi 提问时间:10/31/2023 更新时间:11/4/2023 访问量:44
区分语义错误、逻辑错误和运行时错误
Differentiating semantic error, logic error and runtime error
问:
今天,我遇到了这个考试问题(这与考试问题不完全相同,但想法是一样的):
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)]
正如我在讲座中学到的,一般来说,有 4 种类型的错误:语法错误、运行时错误、逻辑错误和语义错误。在此基础上,我认为返回 ZeroDivisionError 的是运行时错误、逻辑错误和语义错误。但是,在我看来,这也是语义错误,因为也许程序员想这样做。C
A
a = 'abc' + '123'
我知道这个话题已经被提起了很多次,但我仍然很困惑,无法发现这些类型的错误之间的区别。如果可能的话,您能否回答上述问题并区分这些定义?先谢谢你!
答:
1赞
Reyomi
11/4/2023
#1
语义错误是指程序员误解了编程语言的工作原理,并编写了在语言规则上下文中没有意义的代码。代码可能在语法上是正确的,但它违反了语言的规则或“语义”。因此,第一段代码是语义错误。
第二段代码是 SyntaxError,第三段代码是 RuntimeError,最后一段代码是 MemoryError 或 TimeoutError。
评论