首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python——异常层级分析

有,那就是下面的两个    SystemExit:    这个异常被引发的规则是:不管程序是否正常退出,SystemExit异常都会被触发    那么退出的动作,通常是在某段代码中调用了sys.exit...()之后就会触发SystemExit异常    SystemExit异常存在的意义是为了在程序退出之前清理代码,但无需显示的去处理它。    ...KeyboardInterrupt:    这个异常适用于命令行程序,他的引发规则是在键盘上按Ctrl+C,此时这个异常会被抛出     6、关于sys.exit()    sys.exit() 引发一个 SystemExit...8、查看SystemExit和KeyboradInterrupt的父类 ? 9、异常层级关系图 ?...如果只是使用except:语句而没有指定任何类型的异常时,将会捕捉所有BaseException的子类 try:     pass except:     pass 也就是说,这么做的话,会捕捉所有除了SystemExit

1.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

一日一技:为什么exit()无法退出程序?

实际上,exit()、quit()和sys.exit(),他们背后的原理都是一样的,都是在执行的时候,抛出一个异常raise SystemExit。...所以,我们甚至可以直接在代码里面手动抛出这个异常来退出程序: 在正常情况下,无论你是执行这三个命令,还是手动抛出SystemExit异常,Python解释器都能检查到这个异常,然后清理当前进程占用的各个句柄和缓存...但问题在于,SystemExit是基于BaseException实现的一个异常,所以当你的代码里面使用try...except...的时候,你会捕获到这个异常。...这样一来,由于SystemExit不是基于Exception的,所以就不会被捕获。捕获了Exception以后,代码运行效果如下图所示: 从图中可以看到,程序打印了第一个数字就正常退出了。

2.3K20
领券