检测python程序函数方法可以引发的异常

检测python程序函数方法可以引发的异常,第1张

概述大家好,有没有办法’检测’什么例外功能/方法提出?示范: def foo(): print 'inside foo, next calling bar()' _bar() _baz() # lots of other methods calls which raise other legitimate exceptionsdef _bar(): rais 大家好,有没有办法’检测’什么例外功能/方法提出?示范:

def foo():    print 'insIDe foo,next calling bar()'    _bar()    _baz()    # lots of other methods calls which raise other legitimate exceptionsdef _bar():    raise my_exceptions.NotFounddef _baz():    raise my_exceptions.BadRequest

所以,假设foo是我的API的一部分,我需要记录它,有没有办法获得可以从中提取的所有异常?

为了清楚起见我不想处理这些异常,它们应该发生(例如,当找不到资源或者请求格式错误时).

我正在考虑创建一些工具,以“内联”方式转换代码序列,如:

def foo():    print 'insIDe foo,next calling bar()'    # what _bar() does    raise my_exceptions.NotFound    # what _baz() does    raise my_exceptions.BadRequest    # lots of other methods calls which raise other legitimate exceptions

有没有什么可以帮助我检测到而不是导航每个方法调用? (深入到几个文件)

解决方法 你不能用Python合理地做到这一点,原因如下:

1)Python原语并未准确记录它们可以抛出的异常. Python的精神是任何事情都可以随时抛出任何异常.

2)Python的动态特性使得完全静态分析代码变得非常困难,几乎不可能知道代码“可能”做什么.

3)各种不感兴趣的异常必须在列表中,例如,如果你有self.foo,那么它可能引发AttributeError.需要一个非常复杂的分析器来确定foo必须存在.

总结

以上是内存溢出为你收集整理的检测python程序/函数/方法可以引发的异常全部内容,希望文章能够帮你解决检测python程序/函数/方法可以引发的异常所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1192717.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存