在我们编写程序的时候,总会发生一些未预知的逻辑代码报错(即使程序语法正确了)
程序一旦报错就会中断程序的运行,导致后面的流程无法执行。这时我们就可以用到了异常机制。

假设以文件操作为例子:

当不存在 123.txt 文件时,用程序打开名为 123 的 txt 文件

run.jpg

可以看到程序运行后,报错提示找不到该文件,且中断了程序的执行。并没有执行后面的 print 语句打印信息。

run2.jpg

代码:

print("正在打开文件")
f = open("123.txt",'r')
print("打开了文件")


如何通过异常机制来解决程序中断的问题?

我们可以这么写:

try:
    print("正在打开文件")
    f = open("123.txt",'r')
except:
    print("找不到该文件,发生异常")

这样就解决了程序中断的问题,并且进行错误反馈

run3.jpg

有关代码语句

try 语句:会先执行一次里面的代码并捕获异常

except :如果 try 捕获到异常就执行 except 下的语句,相反则不执行

异常的分类

except 能够捕获所有异常,但如果只需要捕获特定的异常则需要进行定义。

try:

except [异常类型]:
常用异常描述
FileNotFoundError找不到指定文件的异常
NameError未声明/初始化对象(没有赋值)
BaseException所有异常的基类
SystemExit解释器请求退出
KeyboardInterrupt用户中断执行
Exception常规错误的基类
StopIteration迭代器没有更多的值
GeneratorExit生成器(generator)发生异常来通知退出
IOError输入/输出操作失败
OSError操作系统错误
WindowsError系统调用失败
ImportError导入模块/对象失败
KeyError映射中没有这个键
MemoryError内存溢出
UnboundLocalError访问未初始化的本地变量
NotImplementedError尚未实现的方法
SyntaxError语法错误
IndentationError缩进错误
TabErrorTab 和空格混用
TypeError对类型无效的操作

总结:

异常机制,可以在代码执行错误时进行捕获,并及时反馈错误信息(异常),让程序继续运行下去。