有没有办法以编程方式确定对象或方法可能引发的异常?
就像dir(obj)
列出了可用的方法一样,我正在寻找等效的dir_exceptions(obj)
。
据我所知,实现这一目标的唯一方法是解析源代码。
答案 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
”结尾的元素。除此之外(这本身就很糟糕),我没有看到一种简单/本地/惯用的方式来做到这一点