Python基础教程8.6 不那么异常的情况

8.6 不那么异常的情况

如果你只想发出警告,指出情况偏离了正轨,可使用模块warnings中的函数warn。

>>> from warnings import warn

>>> warn("I've got a bad feeling about this.")

__main__:1: UserWarning: I've got a bad feeling about this.

>>>

警告只显示一次。如果再次运行最后一行代码,什么事情都不会发生。

如果其他代码在使用你的模块,可使用模块warnings中的函数filterwarnings来抑制你发出的警告(或特定类型的警告),并指定要采取的措施,如"error"或"ignore"。

>>> from warnings import filterwarnings

>>> filterwarnings("ignore")

>>> warn("Anyone out there?")

>>> filterwarnings("error")

>>> warn("Something is very wrong!")

Traceback (most recent call last):

File "", line 1, in

UserWarning: Something is very wrong!

如你所见,引发的异常为UserWarning。发出警告时,可指定将引发的异常(即警告类别),但必须是Warning的子类。

如果将警告转换为错误,将使用你指定的异常。另外,还可根据异常来过滤掉特定类型的警告。

>>> filterwarnings("error")

>>> warn("This function is really old...", DeprecationWarning)

Traceback (most recent call last):

File "", line 1, in

DeprecationWarning: This function is really old...

>>> filterwarnings("ignore", category=DeprecationWarning)

>>> warn("Another deprecation warning.", DeprecationWarning)

>>> warn("Something else.")

Traceback (most recent call last):

File "", line 1, in

UserWarning: Something else.

除上述基本用途外,模块warnings还提供了一些高级功能。如果你对此感兴趣,请参阅库参考手册。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181123G0BH7800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券