上QQ阅读APP看书,第一时间看更新
4.3.2 用专业的异常处理类针对性地处理异常
我们知道,Exception是处理异常的基类,如果直接用来处理异常,语法上没有问题,但是会丢失异常的信息。在实际项目里,一般会先用专业的异常处理类来针对性地处理可能发生的异常,再用Exception类来兜底。
01 try: 02 操作数据库和文件的代码块 03 except(DatabaseError) as dbError: 04 重新连接数据库,或做其他异常处理操作 05 except(FileNotFoundError) as fileError: 06 提示文件不存在,或做其他异常处理操作 07 except(Exception) as e: # 兜底处理 08 提示错误信息
比如在上述try代码块里,我们操作了数据库和文件,推荐的做法是先在第5行和第7行用专业的数据库和文件异常处理类来处理,因为这些类能更精确地获取异常信息。最后用第7行的Exception类来兜底。
用Exception类兜底的原因之前已经提到过:如果仅用两个专业的异常处理类,万一出现了其他的异常,就会因无法处理而终止程序;如果用Exception类来兜底,就不会发生这种情况。