乔山办公网我们一直在努力
您的位置:乔山办公网 > word文档 > word打不开发送错误报告-Python 模块 warnings-发送非严重错误

word打不开发送错误报告-Python 模块 warnings-发送非严重错误

作者:乔山办公网日期:

返回目录:word文档

模块 warnings 在程序运行中,向用户报告非严重错误,它是由 Python 3.0 版本引入的。使用的情况包括向库调用者警告一些函数将来可能废弃,或者提示一些错误的配置信息,不支持的特性等等。


因为报告的不是严重的错误,一个程序可能会遇到多个重复的问题。warnings 可以抑制重复的错误信息,使你不用多次看到他们。方法是可以通过命令行传递参数或者调用 warnings 内的函数。


类别和过滤操作



warnings 可以扩展内置的基类 Warning 来分类,可以查看模块 exceptions 了解详情。


warnings 还可以通过设置过滤修改模块内部的行为,包含6种操作:


  • error 把警告转换为异常
  • ignore 忽略警告
  • always 总是发出警告
  • default 在每个位置打印警告
  • module 在每个模块打印警告
  • once 只打印一次

生成 warnings



最简单的生成 warning 是调用 warn() 函数,传递的参数为消息内容。


执行:


可以看到,虽然 warning 调用了,但是程序还是继续往下运行,默认的行为会继续运行下去。可以调用函数 simplefilter() 改变这种行为。


执行:


在这个例子中,使用 simplefilter() 函数告诉 warnings 模块内部当发生警告 UserWarning 时,触发异常。查看输出,最后打印数据的语句没有执行,程序中途停止运行了。


也可以使用命令行传递参数达到同样的效果。


模式匹配过滤



还可以通过函数 filterwarnings() 过滤更复杂的匹配,例如设定一个正则表达式过滤消息内容。


执行:


本例忽略包含 hello 消息的警告,还可以通过命令行修改过滤行为,查看下面的例子。


执行:


重复的警告



默认大部分的警告只在触发的位置打印一次,请看下面的例子。


执行:


下面的例子会打印两次,因为他们触发的位置不一样。


执行:


可以通过 simplefilter() 改变这种行为,使得不同位置相同的消息内容只警告一次。


执行:


改变消息输出位置



正常情况下,警告消息输出到 sys.stderr。可以通过修改模块函数 showwarning() 覆盖默认的行为。下面的代码,重定向消息到日志模块。


执行:


格式化消息



如果想自定义消息格式,可以修改模块函数 formatwarning()


执行:


相关阅读

关键词不能为空

ppt怎么做_excel表格制作_office365_word文档_365办公网