gpt4 book ai didi

Python:静态检测未处理的异常

转载 作者:行者123 更新时间:2023-12-04 19:28:44 25 4
gpt4 key购买 nike

我正在尝试用 Python 编写一段高度可靠的代码。我遇到的最常见的问题是,运行一段时间后,会出现一些边缘情况并引发我尚未处理的异常。这最常发生在使用外部库时——不阅读源代码,我不知道有一种简单的方法来获取使用特定库函数时可能引发的所有异常的列表,因此很难知道要处理什么.我知道使用包罗万象的处理程序是不好的做法,所以我没有这样做。

有没有好的解决方案?静态分析工具似乎应该可以检查是否处理了所有异常,但我还没有找到。这存在吗?如果不是,为什么? (这是不可能的吗?一个坏主意?等等)出于上述原因,我特别希望它分析导入的代码。

最佳答案

“使用包罗万象的处理程序是不好的做法”忽略异常 :

我们的 Web 服务有一个包含主循环的 except。

except: 
log_exception()
attempt_recovery()

这很好,因为它 通知我们 (必要的)意外错误然后 试图恢复 (没有必要)。然后我们可以查看这些日志并找出问题所在,这样我们就可以防止它再次遇到我们的一般异常。

这就是你想要的 避免 :
except:
pass

因为它 忽略错误 ...然后您不知道发生了错误,并且您的数据可能被熊损坏/无效/消失/窃取。您的服务器可能已启动/关闭/着火。我们不知道,因为我们忽略了异常。

Python 不需要注册可能抛出的异常,因此不会检查模块可能抛出的所有异常,但大多数都会让您了解在文档中应该准备好处理什么。根据您的服务,当它收到未处理的异常时,您可能希望:
  • 记录并崩溃
  • 记录并尝试继续
  • 记录并重新启动

  • 注意到趋势了吗? Action 发生了变化,但你永远不想忽略它。

    关于Python:静态检测未处理的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48086708/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com