Python爬虫、数据分析与可视化:工具详解与案例实战
上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类来兜底,就不会发生这种情况。