没有完美的程序,就如同没有完美的人,程序执行时有可能出错。一旦出错,严重可导致程序崩溃,造成不可预期的破坏。不过,并不是所有的错误都是致命的,我们并不希望自己的程序因一些非致命错误而终止,而是希望能用一种相对“和谐”的方式来处理这些错误。在 Python 中,可以将出错归为两类:错误(Errors)和异常(Exceptions)。
错误
从软件方面来说,一般将错误分为两种:语法错误、逻辑错误。
语法错误,指的是程序不符合编程语言的语法规范,进而导致不能被解释器解释或者编译器无法编译。这些错误违背了语法规则,必须在程序执行前纠正,属于比较低级的错误,在编写程序时,可借助 IDE 进行语法检测,避免错误流到下游。举一个官网提供的例子:
#少了一个冒号:
while True
print("hello world!")
运行结果:
while True
^
SyntaxError: invalid syntax
逻辑错误,在编程时没有充分考虑应用场景,导致程序逻辑不完整,或者输入不合法等。这类错误通常会导致程序无法达成期望的结果,在编程前应该通过周密的设计进行避免。
#比较两个数,返回较大值,漏掉了相等的情况
def compare(num1, num2):
if (num1 > num2):
return num1
elif (num1 < num2):