8.7 小结
本章介绍了如下重要主题。
异常对象:异常情况(如发生错误)是用异常对象表示的。对于异常情况,有多种处理方式;如果忽略,将导致程序终止。
引发异常:可使用raise语句来引发异常。它将一个异常类或异常实例作为参数,但你也可提供两个参数(异常和错误消息)。如果在except子句中调用raise时没有提供任何参数,它将重新引发该子句捕获的异常。
自定义的异常类:你可通过从Exception派生来创建自定义的异常。
捕获异常:要捕获异常,可在try语句中使用except子句。在except子句中,如果没有指定异常类,将捕获所有的异常。你可指定多个异常类,方法是将它们放在元组中。如果向except提供两个参数,第二个参数将关联到异常对象。在同一条try/except语句中,可包含多个except子句,以便对不同的异常采取不同的措施。
else子句:除except子句外,你还可使用else子句,它在主try块没有引发异常时执行。
finally:要确保代码块(如清理代码)无论是否引发异常都将执行,可使用try/finally,并将代码块放在finally子句中。
异常和函数:在函数中引发异常时,异常将传播到调用函数的地方(对方法来说亦如此)。
警告:警告类似于异常,但(通常)只打印一条错误消息。你可指定警告类别,它们是Warning的子类。
8.7.1 本章介绍的新函数
函 数 描 述
warnings.filterwarnings(action,category=Warning, ...) 用于过滤警告
warnings.warn(message, category=None) 用于发出警告
8.7.2 预告
你可能认为本章的内容很特别,但下一章才真的是魔法——准确地说,是近乎魔法。
领取专属 10元无门槛券
私享最新 技术干货