Python 错误和异常

程序中的错误一般被称为 Bug,无可否认,这几乎总是程序员的错。。。

程序员的一生总是伴随着一件事–调试(错误检测、异常处理)。一次又一次,最可怕的事情是:不仅是你自己,还有别人的。万草泥马飞驰而过!

[En]

The programmer’s life is always accompanied by one thing-debugging (error detection, exception handling). Over and over again, the most terrible thing is: not only your own, but also others’. Ten thousand grass and mud horses galloped past!

|版权声明:一去、二三里,未经博主允许不得转载。

程序错误主要分为三类:

[En]

Program errors are mainly divided into three categories:

  • 语法错误
  • 逻辑错误
  • 运行时错误

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

在编译语言(例如:​ ​C++​​​)中,语法错误只在编译期出现,编译器要求所有的语法都正确,才能正常编译。不过对于直译语言(例如:​ ​Python​​)来说,语法错误可能在运行期才会出现,而且不太容易区分语法错误及语义错误。

常见的 Python 语法错误有:

  • 缺少一些必要的符号(冒号、逗号或圆括号)
    [En]

    some necessary symbols (colons, commas or parentheses) are missing*

  • 关键字拼写错误
  • 缩进不正确
  • 空语句块(需要用​ ​pass​​ 语句)

例如,写一条条件判断语句:

[En]

For example, write a conditional judgment statement:

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

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

与语法错误不同,逻辑错误在语法上是正确的,但它们会产生意想不到的输出或结果,不一定会立即发现。逻辑错误的唯一表现是错误的运行结果。

[En]

Unlike grammatical errors, logical errors are grammatically correct, but they produce unexpected output or results that are not necessarily discovered immediately. The only manifestation of a logic error is the wrong running result.

常见的逻辑错误有:

  • 运算符优先级考虑不周
  • 变量名使用不正确
  • 语句块缩进层次不对
  • 在布尔表达式中出错

例如,要计算两个数字的平均值:

[En]

For example, to calculate the average of two numbers:

虽然程序运行正常,但代码中缺少括号,而且由于运算符的优先级(乘法和除法,然后是加法和减法),结果不正确。

[En]

Although the program works normally, there is a lack of parentheses in the code, and the result is incorrect because of the operator priority (multiplication and division, then addition and subtraction).

运行时错误:是指程序可以运行,但是在运行过程中遇到错误,导致意外退出。

当程序由于运行时错误而停止时,通常会说程序崩溃了。在 Python 中,这种运行时错误被称为异常。

Python 中的一些运行时错误:

  • 使用未定义的标识符(​ ​NameError​​)
  • 除数为 0(​ ​ZeroDivisionError​​)
  • 打开的文件不存在(​ ​FileNotFoundError​​)
  • 导入的模块没被找到(​ ​ImportError​​)

例如,除数为 0:

内置异常的层次结构

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

注意: 当捕获异常或者决定应该继承哪个异常类时,这个层次关系非常有用。

Original: https://blog.51cto.com/waleon/5525599
Author: waleon
Title: Python 错误和异常

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/504676/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球