python教程,如何处理捕获不到的分母为零的错误信息?
发布于 作者:苏南大叔 来源:程序如此灵动~

基于python
的sklearn
,苏南大叔调试模型得分原理的时候,发现:当分母为零的时候,会引发一个无法捕获的错误提示信息。这种情况该如何处理呢?为什么这个错误信息无法被捕获呢?

苏南大叔的“程序如此灵动”博客,记录苏南大叔的编程经验文章。本文分析python
语言中,关于捕获分母为零的问题。测试环境:win10
,python@3.11.0
。
正常可以捕获
正常情况下,是可以使用try exception
来捕获分母为零的异常信息的。
测试代码一:
输出:

测试代码二:
输出:
相关文章:
https://newsn.net/say/python-try.html
无法捕获的情况
在下面的代码中,运算结果为零的同时,会得到无法捕获的警告提示信息。
测试代码:

或者模拟一下前文中的模型预测得分过程:

无法捕获的警告提示信息是:
这两个测试代码的共同特点,
- 都涉及
numpy
,分母零的类型都不是普通的int32
,是numpy.int32
。 - 提示信息的类型是
warning
警告,并不是exception
异常,所以没有被捕获到。 - 代码并没有停止运行,继续执行了。即使分母为零,最后结果也返回值为零。
解决方案
既然try...exception...
不能捕获这个错误警告信息,就最终使用了python
的三目运算来解决了这个问题。测试代码:

相关文章:
https://newsn.net/say/python-if-else.html
结束语
更多python
相关文章,请参考苏南大叔的经验总结:


