天天看点

《像计算机科学家一样思考Python(第2版)》——2.8 调试

本节书摘来自异步社区《像计算机科学家一样思考python(第2版)》一书中的第2章,第2.8节,作者[美] allen b. downey,赵普明 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

一个程序中可能出现3种错误:语法错误、运行时错误和语义错误。对它们加以区分,可以更快地找到错误。

语法错误

语法指的是程序的结构以及此结构的规则。例如,括号必须前后匹配,所以(1+2)是合法的,而8)就是一个语法错误。

程序中只要出现一处语法错误,python就会显示出错消息并退出,你的程序就无法运行了。在编程生涯的最初几周中,可能会需要花费大量时间来查找语法错误。但随着经验的增加,犯错会越来越少,查找起来也会越来越快。

运行时错误

第二类错误是运行时错误,这样称呼是因为这种错误只有程序运行后才会出现。这些错误也常被称为异常(exception),因为它们常常表示某些异常的(而且不好的)事情发生了。

运行时错误在开头几章中的简单示例里很少会出现,所以可能要过一段时间你才会遇到。

语义错误

第三类错误是语义错误,意思是错误与含义相关。如果你的程序中有一个语义错误,程序仍会成功运行,而不会产生任何出错消息,但是它不会执行正确的逻辑。它会做其他的事情。特别需要注意的是,它所做的正是你的代码所告诉它的。

查找语义错误会比较麻烦,因为需要反向查找,查看程序输出并尝试弄明白它到底做了什么。