以编程方式列出异常 - Python

时间:2011-11-22 18:56:41

标签: python

有没有办法以编程方式确定对象或方法可能引发的异常?

就像dir(obj)列出了可用的方法一样,我正在寻找等效的dir_exceptions(obj)

据我所知,实现这一目标的唯一方法是解析源代码。

4 个答案:

答案 0 :(得分:2)

我不认为这是可能的。一个例外是运行时现象,您只有在运行时才知道它可能(或发生了什么)。你为什么要这样做呢?

答案 1 :(得分:2)

看起来您必须相信代码的开发人员:如果他们做得很好,方法/类文档应列出可能引发的所有异常。

答案 2 :(得分:1)

不,没有切实可行的方法。

大多数python开发人员派生自Exception,所以如果你不确定,只需捕获Exception。

try:
    some_secret_code()
except Exception:
    print 'oops, something happened'

如果你认为你可以导入一个模块并四处寻找从Exception派生的东西,那也不会有用。那个做这个的python坚果怎么样 - >

exec "raise SystemExit()"

我不确定是否有一种非实用的方法来实现这一目标。

答案 3 :(得分:-1)

我认为这也不可能,但是如果你相信程序员已经在名称中用“Exception”或“Error”命名了他们的例外,那么你可以做{ {1}}在该类上搜索以“dir”或“Exception”结尾的元素。除此之外(这本身就很糟糕),我没有看到一种简单/本地/惯用的方式来做到这一点