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程序/函数/方法可以引发的异常所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)