2023年11月29日发(作者:)

Python错误和异常代码详解

程序中的错误⼀般被称为 Bug,⽆可否认,这⼏乎总是程序员的错。。。

程序员的⼀⽣,始终伴随着⼀件事 - 调试(错误检测、异常处理)。反反复复,最可怕的是:不仅⾃⼰的要改,别⼈的也要

改。。。⼀万头草泥马奔腾⽽过!

错误

程序错误,主要分为三类:

语法错误

逻辑错误

运⾏时错误

语法错误

语法错误(也称:解析错误):是指不遵循语⾔的语法结构引起的错误(程序⽆法正常编译/运⾏)。

在编译语⾔(例如:C++)中,语法错误只在编译期出现,编译器要求所有的语法都正确,才能正常编译。不过对于直译语⾔

(例如:Python)来说,语法错误可能在运⾏期才会出现,⽽且不太容易区分语法错误及语义错误。

常见的 Python 语法错误有:

遗漏了某些必要的符号(冒号、逗号或括号)

关键字拼写错误

缩进不正确

空语句块(需要⽤ pass 语句)

例如,编写这样⼀个条件判断语句:

>>> if n < 5

File "", line 1

if n < 5

^

SyntaxError: invalid syntax

由于 if 语句中缺少⼀个冒号(:),不符合 Python 语法,因此程序⽆法正常运⾏。

逻辑错误

逻辑错误(也称:语义错误):是指程序的执⾏结果与预期不符(程序可以正常运⾏,不会 Crash)。

与语法错误不同的是,逻辑错误从语法上来说是正确的,但会产⽣意外的输出或结果,并不⼀定会被⽴即发现。逻辑错误的唯

⼀表现就是错误的运⾏结果。

常见的逻辑错误有:

运算符优先级考虑不周

除数为 0ZeroDivisionError

打开的⽂件不存在(FileNotFoundError

导⼊的模块没被找到(ImportError

例如,除数为 0

>>> 5 / 0

Traceback (most recent call last):

File "", line 1, in

ZeroDivisionError: division by zero

每当出现这类运⾏时错误时,Python 就会创建⼀个异常对象。如果处理不当,会输出⼀个跟踪(Traceback)到那个错误,

以及关于为什么会出现错误的⼀些细节。

内置异常的层次结构

Python 中有许多内置的异常,当出现相应的错误时,就会引发这些异常。

中,有⼀个内置异常的完整层次结构:

BaseException

+-- SystemExit

+-- KeyboardInterrupt

+-- GeneratorExit

+-- Exception

+-- StopIteration

| +-- IndentationError

| +-- TabError

+-- SystemError

+-- TypeError

+-- ValueError

| +-- UnicodeError