我正在脚本的顶层编写一个异常子句,我只希望它记录发生的任何错误。令人恼火的是,如果我抓到Exception
,PyCharm会抱怨。
import logging
logging.basicConfig()
try:
raise RuntimeError('Bad stuff happened.')
except Exception: # <= causes warning: Too broad exception clause
logging.error('Failed.', exc_info=True)
这个处理程序有问题吗?如果没有,我怎么能让皮查姆闭嘴呢?
从Joran的注释:您可以使用
# noinspection PyBroadException
来告诉PyCharm您可以使用这个异常子句。这是我最初寻找的,但我错过了建议菜单中suppress the inspection的选项。如果您甚至不想记录异常,只想在不抱怨PyCharm的情况下抑制它,那么Python 3.4中有一个新特性:^{} 。
相当于:
原则上,我不愿意关闭警告。
在本例中,您很清楚什么是例外。最好是具体点。例如:
如果有几个可能的异常,可以使用两个except子句。如果可能有许多可能的异常,是否应该尝试使用单个try块来处理所有的异常?最好重新考虑一下设计!
我在这个封闭的feature request中找到了PyCharm的提示:
因为我使用
exc_info=True
进行日志记录,所以我隐式地使用了当前的异常对象,但是PyCharm不知道这一点。为了明确起见,我可以做一些有点老套的事情:exc_info
可以使用任何truthy值在日志中包含堆栈跟踪。异常对象应该是truthy,因为它不是None
。相关问题 更多 >
编程相关推荐