python - try-except 和 RuntimeWarning
问题描述
这应该很容易,但它让我头疼。
我的一个 Python 脚本中的一条语句给出了 RuntimeWarning 消息:
RuntimeWarning: invalid value encountered in double_scalars
z = 1.0/(D*ppr + E*y**2 - F*y**G)
脚本仍然运行,绘制漂亮的图表,显示可接受的结果等。但是这个警告让我很烦。这表明我的脚本中有问题。
每当发生这种情况时,我都想检查值。这不应该工作吗?
try:
z = 1.0/(D*ppr + E*y**2 - F*y**G)
except RuntimeWarning:
print (D, E, F, G, ppr, y)
但它没有(虽然脚本像以前一样运行)。'除了警告:' 也不起作用。
然而,这里列出了这两个例外:https ://docs.python.org/3/library/exceptions.html
这里有什么问题?谢谢你的帮助。
PS:我使用的是 Spyder 4.1.1 IDE。这有什么区别吗?
解决方案
根据模块上的文档warnings
,这就是您“捕获”警告的方式:
with warnings.catch_warnings(record=True) as w:
z = 1.0/(D*ppr + E*y**2 - F*y**G)
if len(w) > 0:
print (D, E, F, G, ppr, y)
免责声明:请注意,忽略这些警告可能不符合您的最佳利益,但要了解它们发生的原因并修复代码,然后删除警告检查。
推荐阅读
- angular - 在 Electron 中构建时,Angular App 构建失败
- actions-on-google - 使用 nodemailer 在 Google 上的 Actions、Dialogflow 上向用户发送电子邮件的问题
- ruby-on-rails - 使用 Pluck 的 Rails 5 查询如何将 created_at 格式化为仅日期?
- html - XSL 到可读的 RSS
- azure-keyvault - 在 Blob 存储中存储机密的缺点
- reactjs - 反应 + 打字稿
- python - 如何从列表中进行选择并将列表中的对象用作标签?
- python - 无法使用我的 py 文件通过命令创建文件夹?
- c# - 动态设置 RibbonComboBox 的选定项(在运行时)?
- html - 如何在 If 语句中放置两个 href 链接?