首先BaseException 是 Exception 的父类
其中一个KeyboardInterrupt 这个异常类是属于父类:BaseExpection 里的面,作为子类的Expection无法捕获
本次测试需要用到命令端测试:
下面实验的hello.txt 的内容为:
import time
try:
# hello.txt文件已存在的情况下测试
f = open(‘hello.txt’)
# 尝试循环读取内容
try:
while True:
con = f.readline()
# 如果读取完成退出循环
if len(con) == 0:
break
time.sleep(2) # 延迟2秒输出,方便观察结果和执行键盘终止操作
print(con)
except Exception as e:
print('内层异常====:', e)
# 在命令提示符中如果按下ctrl+C结束终止的键
print('程序被意外终止')
except:
# raise Exception(“Invalid level!”, e)
print(‘该文件不存在’)
里面的try和expect Expetion 捕捉不到 KeyboardInterrupt 这个异常时,异常外抛到 外面execpt 接收。
执行:print(‘该文件不存在’)
执行结果:该文件不存在