在python中从子子模块捕获明确的异常
我有三个文件。一个是xxx,它引入了xxx2,而xxx2又引入了xxx3,结果在xxx3里出现了一个叫做OppsError的错误。
xxx3.py:
class OppsError(Exception):pass
def go():
raise OppsError()
xxx2.py:
import xxx3
xxx3.go()
xxx.py:
try:
import xxx2
except xxx3.OppsError:
print 'ops'
当我运行xxx.py的时候,出现了一个错误:NameError: name 'xxx3' is not defined
。那么,只有在xxx里引入xxx3才能捕捉到这个OppsError
吗?
1 个回答
1
据我所知,除非你愿意把OppsError
换成一个已经被xxx
知道的内置异常,或者捕捉一个更通用的异常,而不是直接捕捉OppsError
(因为OppsError
是从这个更通用的异常派生出来的)。