Python之错误异常和文件处理
16lz
2021-01-22
- 之前的文章介绍的都是
Python
的一些语法和使用方法, 详情可参考Python基础知识 - 然而这里我们要说的是编程中我们最不想见到的, 但是却也是不得不面对的
Bug
- 除此之外, 这里还会介绍一下
Python
中的文件读取
错误和异常
Python
中(至少)有两种错误:语法错误和异常(syntax errors
和 exceptions
)
语法错误
语法错误,也被称作解析错误, 使我们在学习Python
过程中最常遇到的错误, 来看看下面两个错误示例:
if True
print('titan')
# 错误信息:
File "../5-读文件.py", line 19
if True
^
SyntaxError: invalid syntax
- 语法分析器指出错误出现的文件(
File
)和错误行(line 19
) - 在检测到错误的位置前面显示一个小“箭头”
- 错误是由箭头前面的标记引起的(或者至少是这么检测的)
- 此处错误是因为
Print
函数的前面,if
语句后面少了一个冒号(:
)
异常
- 在没有语法错误的情况下, 当我们执行当前程序的时候也可能会引发错误
- 运行期检测到的错误称为 异常,并且程序不会无条件的崩溃
- 异常能够编译通过, 但是不能运行成功; 而语法错误不能编译成功
print(1 / 0)
# 错误信息:
File "../5-读文件.py", line 22, in <module>
print(1 / 0)
ZeroDivisionError: division by zero
print(1 + "12")
# 错误信息:
File "../5-读文件.py", line 22, in <module>
print(1 + "12")
TypeError: unsupported operand type(s) for +: 'int' and 'str'
print(1 + ad * 2)
# 错误信息:
File "../5-读文件.py", line 22, in <module>
print(1 + ad * 2)
NameError: name 'ad' is not defined
- 错误信息的第一行, 指出了异常出现的文件和错误行
- 第二行, 提示了是哪一条语句出现了错误
- 第三行, 指出了是哪一种异常信息;异常也有不同的类型,异常类型做为错误信息的一部分显示出来
- 以上三种异常分别为: 零除错误(
ZeroDivisionError
), 类型错误(TypeError
) 和 命名错误(NameError
) - 相关异常信息官方文档
异常处理
- 我们都知道, 正常情况下, 程序执行过程中遇到错误或者异常, 程序便会中断执行, 这也就以为着后面的程序将无法执行
- 但是在
Python
中, 我们可以针对异常做出一些处理, 使之在遇到异常错误时, 继续执行后面的代码 - 异常类其实是
class
类, 所有的错误都是继承自BaseException
注意: 还有一些错误是无法跳过的, 比如内存错误
错误处理的语句
更多相关文章
- django模板引擎有错误检查?
- [置顶] Python + C/C++ 嵌入式编程(1):多维数组Numpy.Array(
- 使用python api递归计算每个Dropbox文件夹大小
- 如何在python中播放wav文件?
- python多线程文件传输范例(C/S)
- Python - 将值打印到新文件?
- 如何让TkInter文件选择对话框与IPython / Spyder一起使用?
- 用python将二进制整数或字符串写入文件
- 使用pandas read_table读取csv文件