Python错误和异常代码详解
程序中的错误⼀般被称为 Bug,⽆可否认,这⼏乎总是程序员的错。。。
程序员的⼀⽣,始终伴随着⼀件事 - 调试(错误检测、异常处理)。反反复复,最可怕的是:不仅⾃⼰的要改,别⼈的也要改。。。⼀万头奔腾⽽过!
错误
程序错误,主要分为三类:
语法错误
逻辑错误
运⾏时错误
语法错误
语法错误(也称:解析错误):是指不遵循语⾔的语法结构引起的错误(程序⽆法正常编译/运⾏)。
在编译语⾔(例如:C++)中,语法错误只在编译期出现,编译器要求所有的语法都正确,才能正常编译。不过对于直译语⾔(例如:Python)来说,语法错误可能在运⾏期才会出现,⽽且不太容易区分语法错误及语义错误。
常见的 Python 语法错误有:
遗漏了某些必要的符号(冒号、逗号或括号)
关键字拼写错误
缩进不正确
空语句块(需要⽤ pass 语句)
例如,编写这样⼀个条件判断语句:
>>> if n < 5
File "<stdin>", line 1
if n < 5
^
SyntaxError: invalid syntax
由于 if 语句中缺少⼀个冒号(:),不符合 Python 语法,因此程序⽆法正常运⾏。
逻辑错误
逻辑错误(也称:语义错误):是指程序的执⾏结果与预期不符(程序可以正常运⾏,不会 Crash)。
与语法错误不同的是,逻辑错误从语法上来说是正确的,但会产⽣意外的输出或结果,并不⼀定会被⽴即发现。逻辑错误的唯⼀表现就是错误的运⾏结果。
常见的逻辑错误有:
运算符优先级考虑不周
变量名使⽤不正确
语句块缩进层次不对
在布尔表达式中出错
例如,要计算两个数的平均值:
>>> def average(a, b):
...  return a + b / 2 # 应为 (a + b) / 2
...
>>>
虽然程序能够正常运⾏,但代码中缺少括号,由于运算符优先级(先乘除,后加减)的缘故,运算结果并不正确。
运⾏时错误
运⾏时错误:是指程序可以运⾏,但是在运⾏过程中遇到错误,导致意外退出。
当程序由于运⾏时错误⽽停⽌时,通常会说程序崩溃了。在 Python 中,这种运⾏时错误被称为异常。
Python 中的⼀些运⾏时错误:
使⽤未定义的标识符(NameError)
除数为 0(ZeroDivisionError)
打开的⽂件不存在(FileNotFoundError)
导⼊的模块没被到(ImportError)
例如,除数为 0:
>>> 5 / 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
每当出现这类运⾏时错误时,Python 就会创建⼀个异常对象。如果处理不当,会输出⼀个跟踪(Traceback)到那个错误,以及关于为什么会出现错误的⼀些细节。
内置异常的层次结构
Python 中有许多内置的异常,当出现相应的错误时,就会引发这些异常。
在中,有⼀个内置异常的完整层次结构:
BaseException
+-- SystemExit
+-- KeyboardInterrupt
+-- GeneratorExit
+-- Exception
+-- StopIteration
+-- StopAsyncIteration
+-- ArithmeticError
| +-- FloatingPointError
| +-- OverflowError
| +-- ZeroDivisionError
+-- AssertionError
+-- AttributeError
+-- BufferError
+-- EOFError
+-- ImportError
+-- ModuleNotFoundError
+-- LookupError
| +-- IndexError
| +-- KeyError
+-- MemoryError
+-- NameError
| +-- UnboundLocalError
+-- OSError
| +-- BlockingIOError
| +-- ChildProcessError
| +-- ConnectionError
| | +-- BrokenPipeError
| | +-- ConnectionAbortedError
| | +-- ConnectionRefusedError
| | +-- ConnectionResetError
| +-- FileExistsError
| +-- FileNotFoundError
| +-- InterruptedError
| +-- IsADirectoryError
| +-- NotADirectoryError
| +-- PermissionError
| +-- ProcessLookupError
| +-- TimeoutError
+-- ReferenceError
+-- RuntimeError
| +-- NotImplementedError
| +-- RecursionError
+-- SyntaxError
| +-- IndentationError
| +-- TabError
+-- SystemError
+-- TypeError
python新手代码错了应该怎么改+-- ValueError
| +-- UnicodeError
| +-- UnicodeDecodeError
| +-- UnicodeEncodeError
| +-- UnicodeTranslateError
+-- Warning
+-- DeprecationWarning
+-- PendingDeprecationWarning
+-- RuntimeWarning
+-- SyntaxWarning
+-- UserWarning
+-- FutureWarning
+-- ImportWarning
+-- UnicodeWarning
+-- BytesWarning
+-- ResourceWarning
注意:当捕获异常或者决定应该继承哪个异常类时,这个层次关系⾮常有⽤。
总结
以上就是本⽂关于Python 错误和异常代码详解的全部内容,希望对⼤家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不⾜之处,欢迎留⾔指出。感谢朋友们对本站的⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。