Python 警告控制
我想要在出现某种警告时,把它当成错误来处理,但只想在第一次出现的时候这样做。请问该怎么实现呢?
我看过这个链接,但是我不知道怎么把这两种行为结合起来。
1 个回答
7
在看warnings.py的代码时,你会发现一个警告只能设置一个过滤动作,而且你不能轻易地定义自己的动作,比如说“只抛出一次”。
不过,如果你想把一个警告当作异常来处理,但只想处理一次,这就意味着你在捕获这个异常。那为什么不在你的异常处理部分加一行代码,让这个特定的警告设置为“忽略”呢?
#!/usr/bin/python
import warnings
warnings.filterwarnings('error','Test')
for i in range(2):
try:
warnings.warn('Test');
except UserWarning, e:
print "Error caught"
warnings.filterwarnings('ignore','Test')